使用Python編程的都知道,Python的包安裝很是的方便,通常都是能夠pip來安裝搞定:css
sudo pip install <package name>html
pip的安裝請移步:https://pip.pypa.io/en/stable/installing/python
最近由於項目上的須要,發佈了一個本身的pypi Python包,這裏我大體分享如何發佈本身的Pypi包通常過程。git
打包工做主要依賴python的一個叫setuptools的包來完成,在進行下面操做前請使用pip安裝它:github
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項目首頁。bash
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的格式個上面同樣。ide
準備這個兩個文件不是必須的。工具
可是,有了它們,用戶能夠本身手動安裝依賴包
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