python 如何上傳包到pypi
有過一定的 Python 經(jīng)驗的開發(fā)者都知道,當引入第三方包時,我們常常會使用 pip install 命令來下載并導(dǎo)入包。
那么,如何寫一個自己的包,上傳到 PyPI 呢,其他開發(fā)者也可以通過 pip install 命令下載并導(dǎo)入?
本文提供了最簡單的示例。
準備好項目目錄創(chuàng)建一個項目目錄,其目錄結(jié)構(gòu)如下:
/packaging_tutorial /example_pkg __init__.py
其中,packaging_tutorial 是一個文件目錄,example_pkg 是一個你希望上傳的 Python 包。
注:本人使用的是 virtualenv + virtualenvwrapper 構(gòu)建的 Python 虛擬環(huán)境,因此 python 和 pip 命令(而非 python3 和 pip3)直接對應(yīng)的是我所指定的虛擬環(huán)境(Python 3.6.7)。
創(chuàng)建一些必要文件再向 packaging_tutorial 中創(chuàng)建一些文件。其目錄結(jié)構(gòu)如下:
/packaging_tutorial /example_pkg __init__.py setup.py LICENSE README.md創(chuàng)建 README.md 文件
在 README.md 可以輸入一些介紹項目的文檔。
# 測試這只是一個測試。- 測試 1- 測試 2- 測試 3創(chuàng)建 setup.py 文件
setup.py 是 setuptools 的構(gòu)建腳本,它提供了包的各種信息。
在 setup.py 中輸入以下代碼:
import setuptoolswith open('README.md', 'r') as fh: long_description = fh.read()setuptools.setup( name='example-pkg-your-username', version='0.0.1', author='Example Author', author_email='[email protected]', description='A small example package', long_description=long_description, long_description_content_type='text/markdown', url='https://github.com/pypa/sampleproject', packages=setuptools.find_packages(), classifiers=[ 'Programming Language :: Python :: 3', 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', ],)
各個配置的字段的含義應(yīng)該是不言而喻的,如果想了解更多,參見官網(wǎng)解釋。
創(chuàng)建 LICENSELICENSE 是項目所遵循的許可證,以 MIT 為例:
Copyright (c) 2018 The Python Packaging AuthorityPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the 'Software'), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.存檔發(fā)布版本
一般來說,pip 默認應(yīng)該都安裝了 setuptools 和 wheel。如果沒有安裝,則安裝之:
pip install setuptools wheel -i https://pypi.douban.com/simple
如果安裝需要更新,則更新之:
pip install --upgrade setuptools wheel -i https://pypi.douban.com/simple
安裝好最新版本后,在 setup.py 所在目錄下輸入:
python setup.py sdist bdist_wheel
這個命令會在生成一個 dist 目錄,里面有兩個文件:
dist/ example_pkg_your_username-0.0.1-py3-none-any.whl example_pkg_your_username-0.0.1.tar.gz
tar.gz 是源文件存檔,whl 是構(gòu)建的發(fā)布版本。
上傳發(fā)布版本安裝 twine:
pip install twine -i https://pypi.douban.com/simple
安裝好之后,執(zhí)行 twine 命令(這里,需要注意你已經(jīng)注冊了 PyPI 的賬號):
twine upload dist/*
Enter your username: heyulong Enter your password: Uploading distributions to https://upload.pypi.org/legacy/Uploading example_pkg_heyulong-0.0.1-py3-none-any.whl100%|??????????????????????????????????????| 5.49k/5.49k [00:01<00:00, 4.66kB/s]Uploading example-pkg-heyulong-0.0.1.tar.gz100%|??????????????????????????????????????| 4.23k/4.23k [00:01<00:00, 2.21kB/s]
執(zhí)行完之后,即可在 PyPI 官網(wǎng)上看到自己上傳的項目了。
安裝你上傳的 PyPI 項目,比如我的:
pip install example-pkg-heyulong
這里簡單介紹了上傳 PyPI 項目的過程。更多細節(jié)請關(guān)注 PyPI 官網(wǎng)。
以上就是python 如何上傳包到pypi的詳細內(nèi)容,更多關(guān)于python 上傳包到pypi的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
