注意事项#
请在项目开始前,先去PyPI搜索,查看自己的项目名称是否已经被占用。
若事后才发现,则可能需要将项目中的对应名字全部替换,可能会由于疏忽产生新bug。
步骤1#
项目结构理论上可以任意组织,只要在setup.cfg
和setup.py
中对应改变即可。
我推荐以下结构,因为我们自己的package一般组织得比较简单,不需要复杂的setup.cfg
进行组织。假设你要上传的包的名字为TomCat
1
2
3
4
|
project/
TomCat/
README.md
setup.py
|
步骤2#
给项目编写setup.py
,大致如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from setuptools import setup, find_packages
setup(
name='TomCat',
version='0.0.0.0.1',
description='a simple web framework',
long_description='a simple web framework',
url='',
author='',
license='MIT',
keywords=('web', 'framework'),
packages=find_packages(),
python_requires='>=3.6',
install_requires=[
'Werkzeug>=2.0.0',
'jinja2>=3.0.0',
],
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
],
)
|
步骤3#
去PyPI中注册账号
步骤4#
安装以及更新setuptools
和wheel
,安装PypI
的包上传工具twine
,推荐在虚拟环境下进行
1
|
pip install --upgrade setuptools wheel twine
|
步骤5#
构造包
1
|
python setup.py sdist bdist_wheel
|
步骤6#
上传包,中途会要求你提供账号密码
步骤7#
记住,每次更新时,需要产生一个新的版本号(setup.py中的version字段),刚开始还没能把流程走通时,推荐初始版本号为0.0.0.0.1
,也就是版本号尽可能小,等到熟练后再进行修改。
此外,反复构建时,需要把之间构造产生的旧版本的.whl
和tar.gz
文件删除后再上传,否则可能报文件存在的错误。