本文涉及到的链接
python 打包官方指南
python 包主站
python 包测试站
toml 语法格式指南
创建项目
项目结构
packaging_tutorial/
├── LICENSE
├── pyproject.toml
├── README.md
├── src/
│ └── example_package_YOUR_USERNAME_HERE/
│ ├── __init__.py
│ └── example.py
└── tests/
packaging_tutorial # 项目目录名称,自定义即可
LICENSE # 开源信息,可省略,详细可查看 https://choosealicense.com/
pyproject.toml # 包配置文件,详细查看文档开头的toml指南
README.md # 自述文件
src/example_package_YOUR_USERNAME_HERE # 后缀修改为自己的名字,防止冲突
__init__.py # 包导入文件,为空即可
example.py # 项目文件
tests # 测试文件,保留为空
pyproject.toml 创建
# 这里采用的是hatchling,也可以在官网指南进行其他选择
# requires 指的是依赖于哪些包,会自动进行下载
# [project] 中的name,项目名称,不要冲突
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[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"
README.md 文档创建
# 测试模块
> 这是一个测试文档
example.py 文件创建
def tests(a,b):
return a + b
升级build
# 这里注意,linux/mac 是python3 windows 是py
python3 -m pip install --upgrade build
构建
python3 -m build
# 这里是构建之后的结果
dist/
├── example_package_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whl
└── example_package_YOUR_USERNAME_HERE-0.0.1.tar.gz
安装推送文件
python3 -m pip install --upgrade twine
上传
python3 -m twine upload --repository testpypi dist/*
# 注意,这里会进行账号密码填写,注册地址:https://test.pypi.org/account/register/
# 注册后验证邮箱并开启token 地址:https://test.pypi.org/manage/account/#api-tokens
下载验证
python3 -m pip install --index-url https://test.pypi.org/simple/ example-package-YOUR-USERNAME-HERE
模块导入测试
>>> from example-package-YOUR-USERNAME-HERE import example
>>> example.tests(10,15)
25
Comments | NOTHING