python打包方法
setup.cfg
项目代码结构设计
源码包开发模式
# 在本地安装正在开发中的包,用以测试
python -m pip install -e .
完整的python打包流程
Use build, twine to package and upload python-package
License许可证的选择
快速流程
setup.cfg/pyproject.toml
setup.cfg,pyproject.toml都是打包要定义的元数据,有其中之一即可,两者都有也行。
配置语法不同,具体参考上面的链接
setup.cfg
[metadata]
name = my_package
version = attr: my_package.VERSION
author = Josiah Carberry
author_email = josiah_carberry@brown.edu
description = My package description
long_description = file: README.rst, CHANGELOG.rst, LICENSE.rst
keywords = one, two
license = BSD-3-Clause
classifiers =
Framework :: Django
Programming Language :: Python :: 3
[options]
zip_safe = False
include_package_data = True
packages = find:
python_requires = >=3.7
install_requires =
requests
importlib-metadata; python_version<"3.8"
[options.package_data]
* = *.txt, *.rst
hello = *.msg
[options.entry_points]
console_scripts =
executable-name = my_package.module:function
[options.extras_require]
pdf = ReportLab>=1.2; RXP
rest = docutils>=0.3; pack ==1.1, ==1.3
[options.packages.find]
exclude =
examples*
tools*
docs*
my_package.tests*
pyproject.toml
[project]
name = "example_package_YOUR_USERNAME_HERE"
version = "0.0.1"
authors = [
{ name="Example Author", email="author@example.com" },
]
description = "A small example package"
readme = "README.md"
requires-python = ">=3.7"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
]
[project.urls]
"Homepage" = "https://github.com/pypa/sampleproject"
"Bug Tracker" = "https://github.com/pypa/sampleproject/issues"
安装环境
# build用于打包
python3 -m pip install --upgrade build
# twine用于上传到pypi
python3 -m pip install --upgrade twine
开发完成后
# 不上传pypi直接从本地安装包
python3 -m pip install -e .
# 打包文件位于dist目录下
python3 -m build --wheel .
# 上传到test pypi,主要是用来给你体验pypi,区别于正式的pypi。
# 账号系统是分离的,所以需要重新注册。
python3 -m twine upload --repository testpypi dist/*
# 从test pypi安装,检验是否正常
python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps example-package-YOUR-USERNAME-HERE
# 确认没问题,上传到正式环境pypi.org
python3 -m pip install example-package-YOUR-USERNAME-HERE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律