pypi.org
帳號,主郵箱須要驗證經過。testing.pypi.org
帳號,注意:測試環境的pypi 帳號
和正式環境的 pypi 帳號
不互通,爲了社區的穩定及繁榮發展,請務必先上測試環境確認無誤後再發到正式環境。Python2
和共存時該如何使用 pip
安裝第三方包。儘可能把本身的包單獨放到一個項目內,把本身寫好的包在 github 上新建一個項目。python
在 github
上建一個項目,項目名稱儘可能和你的包名稱一致。git
把本身的包放到 本地環境
,建立一個虛擬環境,方便你freeze
你的依賴包,並選擇一個開源協議, 上傳到 git
。github
編寫 REANDME.md
, 讓其餘人知道你的工具包如何使用。shell
編寫 setup.py
, 即編譯你的工具包。bash
setup.py是setuptools的構建腳本。它告訴setuptools你的包(例如名稱和版本)以及要包含的代碼文件。markdown
打開setup.py並輸入如下內容。更新軟件包名稱以包含您的用戶名(例如,example-pkg-theacodes),這可確保您擁有惟一的軟件包名稱,而且您的軟件包與本教程後其餘人上傳的軟件包不會發生衝突。ide
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="example-pkg-your-username", # 包名稱
version="0.0.1", # 包版本
author="Example Author", # 做者
license='MIT', # 協議簡寫
author_email="author@example.com", # 做者郵箱
description="A small example package", # 工具包簡單描述
long_description=long_description, # readme 部分
long_description_content_type="text/markdown", # readme 文件類型
install_requires=[ # 工具包的依賴包
'certifi>=2019.6.16',
'chardet>=3.0.4',
'decorator>=4.4.0',
'idna>=2.8',
'requests>=2.22.0',
'retry>=0.9.2',
'urllib3>=1.25.3',
'xmltodict>=0.12.0'
],
url="https://github.com/pypa/sampleproject", # 包的開源連接
packages=setuptools.find_packages(), # 不用動,會自動發現
classifiers=[ # 給出了指數和點子你的包一些額外的元數據
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
複製代碼
生成分發檔案工具
是爲包生成分發包。這些是上傳到包索引的檔案,能夠經過pip安裝。測試
setuptools
和 whell
爲最新版 【重要】: 若是不爲最新版可能致使沒法編譯。pip install --user --upgrade setuptools wheel
# 若是您在安裝它們時遇到問題,請參閱 [安裝包教程](https://github.com/pypa/packaging-problems/issues/new?title=Trouble+following+packaging+libraries+tutorial)
複製代碼
python3 setup.py sdist bdist_wheel
複製代碼
上傳編譯包到測試環境ui
Test PyPI是用於測試和實驗的包索引的單獨實例。這對於像咱們不必定想要上傳到真實索引的本教程這樣的東西很棒。要註冊賬戶,請訪問 test.pypi.org/account/reg… PyPI的更多詳細信息,請參閱 使用TestPyPI。
安裝 twine
上傳編譯包
pip install --user --upgrade twine
複製代碼
使用 twine
上傳編譯包
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
複製代碼
到如今已經上傳完成了,你能夠到你的包,並安裝測試。 test.pypi.org
上傳編譯包到正式環境
確認包無缺,能夠正常工做,上傳到正式環境。
使用 twine
上傳編譯包
python -m twine upload dist/*
複製代碼
測試正式環境的包