你还记得我们经常使用的 pip 命令吗?有没有想过这些包是从哪里来的?答案是 PyPI。这是 Python 的软件包管理系统。
为了实验,我们会使用 PyPI 的测试服务器 TestPyPI · The Python Package Index。
1.创建账号
首先在这个链接注册账号。你会收到带有链接的邮件,点击这个链接确认你的注册。
创建 ~/.pypirc 文件,存放你的账号详细信息,其内容格式如下:
[distutils]
index-servers = pypi
testpypi
[pypi]
repository: https://upload.pypi.org/legacy/
username: <username>
password: <password>
[testpypi]
repository:https://test.pypi.org/legacy/
username: <username>
password: <password>
替换 <username>
和 <password>
为您新创建的帐户的详细信息。在这里,由于我们是到 testpypi
的网页上去注册账号,即将相应的服务上传到 testpypi
,所以在这里,你只需修改[testpypi]
的用户名和密码
记得在 setup.py
中更改项目的名称为其它的名字来测试下面的指令,在接下来的命令中我将项目名称修改为 factorial2,为了不重复,大家需要自行修改至其它名称(不要使用 factorial 和 factorial2,因为已经被使用了)。
2.上传到 TestPyPI 服务
下一步我们会将我们的项目到 TestPyPI 服务。这通过 twine
命令完成。
我们也会使用 -r
把它指向测试服务器。
$ sudo pip3 install twine
$ twine upload dist/* -r testpypi
执行完毕会返回类似下面的信息:
Uploading distributions to https://test.pypi.org/legacy/
Uploading factorial2-0.1.tar.gz
现在如果你浏览这个页面,你会发现你的项目已经准备好被别人使用了。
在这里你也可以使用下面的命令上传到 PyPI 服务上,但这里需要注意,在 ~/.pypirc
里面,你需要到 https://pypi.python.org
页面,按照上面的步骤去注册一个账号,然后到~/.pypirc
的 [pypi]
下填写相应的用户名和密码。testpypi
和 pypi
的账号密码并不通用。
$ twine upload dist/* -r pypi