赞
踩
https://packaging.python.org/tutorials/packaging-projects/
pyproject.toml是告诉构建工具(例如pip10+和 build)的文件,您正在使用的系统以及构建所需的系统。如果缺少此文件,则默认为假定使用经典的setuptools构建系统,但最好明确一些。如果您有pyproject.toml文件,您将可以依赖wheel和存在其他软件包。大多数项目用以下设置就够了
[build-system]
requires = [
"setuptools>=42",
"wheel"
]
build-backend = "setuptools.build_meta"
build-system.requires提供构建软件包所需的软件包列表。在此处列出某些内容只会使其在构建期间可用,而在安装之后不可用。
build-system.build-backend从技术上讲是可选的,但是setuptools.build_meta:__legacy__如果您忘记包含它,则会得到 替代,因此请始终包含它。如果要使用flit或poetry之类的其他构建系统, 这些将在此处使用,并且配置详细信息将与下面描述的setuptools配置完全不同。看PEP 517和PEP 518了解背景和详细信息
元数据有两种类型:静态和动态。
静态元数据(setup.cfg):setup.cfg是一个ini文件,其中包含setup.py命令的默认选项 。setup.cfg提供一种方式,可以让包的开发者提供命令的默认选项,同时为用户提供修改的机会。对setup.cfg的解析,是在setup.py之后,在命令行执行前
动态元数据(setup.py):setup.py的主要特征是它包含一个全局setup()函数。此函数的关键字参数是如何定义项目的特定详细信息。
静态元数据应该是首选,动态元数据仅在绝对必要时才用作逃生舱口(官网原话,但是发现好多都是用的*setup.py*)。
元数据参数详情
[metadata] # replace with your username: # 包名 name = example-pkg-YOUR-USERNAME-HERE # 软件版本 version = 0.0.1 # 作者 author = Example Author # 作者邮箱 author_email = author@example.com # 该软件包的简介,一句话摘要 description = A small example package # 软件详细说明这在Python软件包索引的软件包详细信息页面上显示。在这种情况下,将README.md使用file:指令加载长描述,这是一个常见的模式。 long_description = file: README.md # 告诉索引用于长描述的标记类型 long_description_content_type = text/markdown # 项目主页的URL。对于许多项目,这仅是指向GitHub,GitLab,Bitbucket或类似代码托管服务的链接。 url = https://github.com/pypa/sampleproject # 可让您列出要在PyPI上显示的任意数量的额外链接。通常,这可能是文档,问题跟踪器等。 project_urls = Bug Tracker = https://github.com/pypa/sampleproject/issues # 一些额外的源数据 classifiers = Programming Language :: Python :: 3 # 该软件包使用的python版本 License :: OSI Approved :: MIT License # MIT许可证 Operating System :: OS Independent # 兼容的操作系统 [options] # 软件包名称和目录的映射。空的程序包名称表示“根程序包”,即项目中包含该程序包的所有Python源文件的src目录 package_dir = = src # 应该包含在分发包中的所有Python导入包的列表。无需手动列出每个软件包,我们可以使用指令自动发现所有软件包和子软件包并 指定要使用的。find:options.packages.findpackage_direxample_pkg packages = find: # 项目支持的Python版本。 python_requires = >=3.6 [options.packages.find] where = src
import setuptools with open("README.md", "r", encoding="utf-8") as fh: long_description = fh.read() # 必须要调用,即使没有参数 setuptools.setup( name="example-pkg-YOUR-USERNAME-HERE", # Replace with your own username version="0.0.1", author="Example Author", author_email="author@example.com", description="A small example package", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/pypa/sampleproject", project_urls={ "Bug Tracker": "https://github.com/pypa/sampleproject/issues", }, classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], package_dir={"": "src"}, # 这里有坑,如果有两个src目录好像会有问题,直接不指定改参数,下面不指定where就没问题,后续再搞清楚原因 packages=setuptools.find_packages(where="src"), python_requires=">=3.6", )
打包先上传到pypi公有库,然后直接pip install
直接把代码上传到git仓库,github,gitlab,gitee都行,然后通过以下命令安装
- pip install git+<git仓库地址>
- pip install git+<git仓库地址>@<分支名称>
# 需要账号密码登录时用以下命令,注意:如果用户名密码包含@字符,需要转义: %40, 如账号为xxx@qq.com, 密码为123456, 仓库地址为https://gitee.com/xxx/xxx.git
- pip install git+https://xxx%40qq.com:123456@gitee.com/xxx/xxx.git
通过pypiserver搭建私有库,搭建教程参考pypiserver github地址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。