用了这么长时间的 python,一直想写些开源的东西回馈社区,最近在封装微信的公众平台,借着机会研究了下怎样封装 pip 包,并上传到 pypi。
创建项目 首先创建项目,目录结构如下
1 2 3 4 5 6 7 8 -- wwx | |-- wwx | | | |-- __init__.py | |-- models.py | |-- setup.py
其中 wwx/wwx
是主代码目录,setup.py
是必备的打包文件
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 24 25 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) # Description: from setuptools import setup, find_packagessetup( name = 'wwx' , version = '0.0.1' , keywords='wx' , description = 'a library for wx Developer' , license = 'MIT License' , url = 'https://github.com/wxnacy/wwx' , author = 'wxnacy' , author_email = '[email protected] ' , packages = find_packages(), include_package_data = True , platforms = 'any' , install_requires = [ 'requests>=2.19.1' , 'pycrypto>=2.6.1' , 'xmltodict>=0.11.0' ], )
项目代码根据你的需求编写,你可以写一个这样的例子来测试
models.py
1 2 3 4 5 6 7 8 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) class Message () : @classmethod def test () : print('Hello World' )
__init__.py
1 2 3 4 5 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) from .models import Message
安装到本地测试 接下来在 setup.py
所在目录下执行安装命令,安装到本地
在项目中你就可以使用测试了
1 2 3 4 5 6 7 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author: wxnacy([email protected] ) from wwx import MessageMessage.test()
打包 测试完成后,再上传到 pypi 之前需要先打包
1 $ python setup.py <params>
params
有如下取值
1 2 3 4 5 6 sdist create a source distribution (tarball, zip file, etc.) bdist create a built (binary) distribution bdist_dumb create a "dumb" built distribution bdist_rpm create an RPM distribution bdist_wininst create an executable installer for MS Windows bdist_egg create an "egg" distribution
sdist
可以支持上传到 pypi
然后根目录中会出现 dist
目录存放打包文件
上传 pypi 最后一步上传到 pypi,首先去官网 搜索确认项目名没有被占用,并注册用户,然后使用 twine
进行上传
下载 twine
上传
然后根据提示输入用户名密码即可。
设置全局账户信息
创建 ~/.pypirc
文件并添加如下信息
1 2 3 4 5 6 7 [distutils] index-servers=pypi [pypi] repository = https://upload.pypi.org/legacy/ username = <username> password = <password>
然后再次上传就不会提示输入用户密码了