在PyPI上发布自己的库

之前做了个个性化QR码的小工具丢在了Github上。然后后来有人建议放个requirements.txt上去方便安装依赖包。然后昨天研究了一下,把它给发布到PyPI上面去了,这样用pip就能够安装了。现在就记录一下requirements.txt的生成和PyPI的发布方法吧。

requirements.txt 的生成

使用pip freeze可以获取当前环境下所有的第三方库,直接重定向标准输出到requirements.txt文件中就能方便的生成了。 但是这样有个问题,这个命令获取的是当前环境下的所有库,如果没有virtualenv的话会的到一大堆不需要的库。即使在virtualenv环境下,也会把virtualenv给包含进去。

所以我们可以用pipreqs来生成requirements.txtpip install pipreqs来安装pipreqs,然后使用命令pipreqs 项目目录就会在项目目录下生成requirements.txt了。

发布到PyPI

  1. 整理好包的结构
  2. 编写setup.py
  3. 打包
  4. 注册PyPI帐号
  5. 发布上传

包结构

要发布先要整理成包的结构才能打包发布. 最简单的结构像这样

当前目录
\
 |
 -setup.py
 -包目录
 \
  -__init__.py
  |
  -其他代码.py

init.py 内容是什么无所谓,即使是空的也行

编写setup.py

我懒。这里可以参考官方文档。我更推荐使用setuptools,大部分都可以直接复制粘贴过来改。可以直接到Github上面看我的setup.py怎么写的。

一般来说还要加个说明文档,然后长描述用于在PyPI页面上的说明,我懒没做。 有两个比较值得说明的。一个是install_requires。把项目依赖的第三方库加到这里,这样pip安装的时候会自动把依赖项装上去。还一个是entry_pointsconsole_scripts。想要在安装后可以直接当成命令行工具使用执行的话就把要执行的函数加到这里。

打包

执行python setup.py check来检查setup.py有没有什么写错的地方

执行python setup.py sdist就能进行打包操作了。

发布上传

发布上传需要有在PyPI上面注册帐号。可以先在官网上注册也可以发布的时候注册。

执行

python setup.py register sdist upload

就行了。

最后开个virtualenv用pip安装看看是不是成功了

@

Show Comments