背景 最近興趣使然寫了幾個Python庫,也發佈到了Pypi上,雖然沒什麼人下載,但自己在其他機器上用著也會很方便。這裡我向大家介紹一下如何在Pypi上發表自己的Python庫。 準備 註冊賬號 很顯然地要在Pypi上註冊一個賬號。 安裝必要的庫 setuptools 原則上安裝了pip的環境都有s ...
背景
最近興趣使然寫了幾個Python庫,也發佈到了Pypi上,雖然沒什麼人下載,但自己在其他機器上用著也會很方便。這裡我向大家介紹一下如何在Pypi上發表自己的Python庫。
準備
註冊賬號
很顯然地要在Pypi上註冊一個賬號。
安裝必要的庫
setuptools
原則上安裝了pip的環境都有setuptools,但並不影響你去嘗試升級一下它。
pip install --upgrade setuptools
twine
這是一個簡化將庫發佈到Pypi上流程的工具,具體的使用之後會講到。
pip install --upgrade setuptools
克隆倉庫(推薦)
大名鼎鼎的requests庫的作者大神kennethreitz為大家準備了一個倉庫作為一個setup.py的很好的模板,當然你也可以自己手寫setup.py。
git clone https://github.com/kennethreitz/setup.py
編碼
編輯setup.py
建議大家直接編輯之前的倉庫里的setup.py, 只需要修改一些必要的配置就可以了。這是我最近編寫的庫condition_chain的配置。
...
# Package meta-data.
NAME = 'condition_chain'
DESCRIPTION = 'Process a series of conditional judgement with a chained call.'
URL = 'https://github.com/duyixian1234/condition_chain'
EMAIL = '[email protected]'
AUTHOR = 'Yixian Du'
# What packages are required for this module to be executed?
REQUIRED = [
# 'requests', 'maya', 'records',
]
...
編寫核心代碼
接下來我們就可以編寫自己的代碼了,要註意源代碼文件夾(倉庫里的my_package文件夾)的名字與setup.py里配置的包名(Name)要一致。
另外在重新上傳之前我們要修改__version__.py里的版本號,以免覆蓋了以前的上傳(相信會有人是需要之前版本的庫的)。
最終的代碼結構
│ LICENSE
│ MANIFEST.in
│ README.rst
│ setup.py
│
└─condition_chain
core.py
__init__.py
__version__.py
打包上傳
在setup.py的同級目錄下運行以下命令。
python setup.py sdist bdist_wheel
然後運行
twine upload dist/*
註意要輸入Pypi賬號和密碼。
大功告成
之後我們就可以在Pypi里搜索到自己的Python庫了,當然也可以直接通過pip安裝。