python打包方法

setup.cfg

可配置项

项目代码结构设计

Project Layout

源码包开发模式

# 在本地安装正在开发中的包,用以测试
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
posted @   dasky92  阅读(125)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示