这个命令会提示输入刚在test.pypi.org上注册账号密码,并出现类似以下信息后说明已经上传成功。
Enter your username: hylinux1024 Enter your password: Uploading distributions to https://test.pypi.org/legacy/ Uploading bestpkg-0.0.1-py3-none-any.whl 100%|██████████████████████████████████████| 4.57k/4.57k [00:00<00:00, 8.01kB/s] Uploading bestpkg-0.0.1.tar.gz 100%|██████████████████████████████████████| 4.18k/4.18k [00:01<00:00, 3.23kB/s]然后打开https://test.pypi.org/project/bestpkg/这个地址就可以看到我们发布的包。
0x07 安装发布成功之后就可以使用pip来安装来。我们在虚拟环境中安装,关于虚拟环境可以看我前一篇文章。
这里就使用pipenv,这里我直接进入到我昨天创建的那个项目中,也为了更好演示安装结果。
➜ pip install --index-url https://test.pypi.org/simple/ --no-deps bestpkg在这里我使用--index-url参数是为了指定从test.pypi.org中安装,而不是正式包索引库中查找要安装的包。还有使用了--no-deps参数是因为本例中没有使用到其它的依赖库。
在终端会看到以下类似信息,说明安装成功
Looking in indexes: https://test.pypi.org/simple/ Collecting bestpkg Downloading https://test-files.pythonhosted.org/packages/5a/fc/c109b3872b6c06e7368c30b6e52501113846f90ca716a434766151093173/bestpkg-0.0.1-py3-none-any.whl Installing collected packages: bestpkg Successfully installed bestpkg-0.0.1进入交互界面
(pipenvdemo) ➜ pipenvdemo python >>> import bestpkg >>> bestpkg.info 'packaging demo'info变量就是在__init__.py文件中定义的变量。自此我们的包发布、安装使用流程就走完了。
要在正式的Python索引库中发布,只需要到https://pypi.org/注册账号,并上传就可以了。
0x08 总结一下通过一个简单的例子展示Python通过setuptools工具进行打包,然后上传到test.pypi.org的流程。如果要上传到正式的pypi.org上,只需要注册一个正式的账号。一旦发布成功就可以使用pip install [your-package]的命令进行安装。
0x09 引用https://packaging.python.org/tutorials/packaging-projects/
Packaging Python Projects