发布自己的python轮子
最近要帮忙发布一个python包,所以自己看了看资料、踩了踩坑。这里理理整个流程
其实整个过程不是很复杂,基本上只要仿照官方给的PyPA的例子就可以了。
首先
cd
进入自己的项目目录下,整个项目的目录结构可以参考上面给出的例子。首先你要有一个自己的
setup.py
,这是最关键的部分,它负责声明这个包的一些依赖和入口。至于setup
怎么写,就参考sample或者官方文档Tutorials吧。
setup
里面最重要的还是name
和version
了,它们直接对应你上传的包的名字和版本号,另外作者名字和PyPI账号不需要一致。
除此之外,你可能还需要一个README.rst
作为文档以及一个MANIFEST.in
用来添加诸如LICENSE.txt
之类的附加文件。规则相见官网。
.rst
文件可以上网找个在线编辑器,找个教程速成一下。接下来去注册一个PyPI账号,链接。
在项目的顶级目录下创建文件
.pypirc
,内容为:
[distutils]
index-servers=
pypi
testpypi
[pypi]
username = <username>
password = <password>
[testpypi]
repository: https://test.pypi.org/legacy/
username = <username>
password = <password>
注:用户名和密码是PyPI的账户,由于是明文,建议不填。
之后我们使用twine这个包,可以更安全地上传。
pip install twine
python setup.py sdist bdist_wheel
twine upload --repository testpypi dist/*
- 测试服务器。之前看教程没有提到这点,其实测试包应该先发布在这里。官网说明在这里testpypi。
python setup.py sdist bdist_wheel
twine upload dist/*
- 正式提交。
NOTE:经过调查,remove掉的版本号并不能重新提交,只能通过修改setup.py的name或者version来提交一个新的版本(注:每次修改之后,要删掉dist文件夹下面的压缩包,然后再python setup.py sdist bdist_wheel一遍)。因而每次提交之前都先交到test服务器上去,之前看的教程没有提到,就很坑。。。
完。