转载自:https://www.cnblogs.com/sting2me/p/6550897.html
使用Python编程的都知道,Python的包安装非常的方便,一般都是可以pip来安装搞定:
sudo pip install
pip的安装请移步:https://pip.pypa.io/en/stable/installing/
最近因为项目上的需要,发布了一个自己的pypi Python包,这里我大致分享如何发布自己的Pypi包一般过程。
打包工作主要依赖python的一个叫setuptools的包来完成,在进行下面操作前请使用pip安装它:
sudo pip install setuptools
记住自己的用户名和密码,后面上传的时候要输入的
#!/usr/bin/env python # coding=utf-8 from setuptools import setup, find_packages setup( name='<项目的名称>', version=<项目版本>, description=( '<项目的简单描述>' ), long_description=open('README.rst').read(), author='<你的名字>', author_email='<你的邮件地址>', maintainer='<维护人员的名字>', maintainer_email='<维护人员的邮件地址', license='BSD License', packages=find_packages(), platforms=["all"], url='<项目的网址,我一般都是github的url>', classifiers=[ 'Development Status :: 4 - Beta', 'Operating System :: OS Independent', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Programming Language :: Python', 'Programming Language :: Python :: Implementation', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Topic :: Software Development :: Libraries' ], )
需要注意的上面的字段:
我的long_description是同目录下的README.rst的内容,同时这个README也是我的github项目首页。
install_requires=[ 'Twisted>=13.1.0', 'w3lib>=1.17.0', 'queuelib', 'lxml', 'pyOpenSSL', 'cssselect>=0.9', 'six>=1.5.2', 'parsel>=1.1', 'PyDispatcher>=2.0.5', 'service_identity', ]
mock>=2.0.0 flake8>=3.2.1 eventlet>=0.19.0 nose2>=0.6.5 cov_core>=1.15.0 virtualenv>=15.1.0
以上是我的test-requirements.txt的内容,requirements.txt的格式个上面一样。
准备这个两个文件不是必须的。
但是,有了它们,用户可以自己手动安装依赖包
1
|
pip
install
-r requirements.txt
|
有了它们,结合tox等工具,可以非常方便的加入自动化测试。
README的截图就不放了,以免广告嫌疑。有兴趣可以到参考http://rest-sphinx-memo.readthedocs.io/en/latest/ReST.html
可以使用下面命令打包一个源代码的包:
python setup.py sdist build
这样在当前目录的dist文件夹下,就会多出一个以tar.gz结尾的包了:
也可以打包一个wheels格式的包,使用下面的命令搞定:
python setup.py bdist_wheel --universal
这样会在dist文件夹下生成一个whl文件,
# 上传source 包 python setup.py sdist upload # 上传pre-compiled包 python setup.py bdist_wheel upload
使用twine上传,先安装twine
sudo pip install twine twine upload dist/*
上次前都会提示你前面注册的用户名和密码。一切搞定,你的包现在可以通过pip在任何地方安装了。
其实对于一个包,你要长久维护,自动测试肯定要加入,后面有时间再分享下如何使用tox的使用和与第三方CI的集成。
引用链接:
pypi详细教程: https://packaging.python.org/distributing
使用账号等操作,详见:http://blog.csdn.net/wdxin1322/article/details/56685094
http://blog.csdn.net/nirendao/article/details/48664551
http://blog.csdn.net/wdxin1322/article/details/56685094