如何將自己寫的模塊上傳到pypi
楔子
我們在安裝第三方包的時候,直接一個pip install xxx命令就搞定瞭,然後pip會去pypi上尋找我們要安裝的包,然後下載下來。
而pypi(Python Package Index )你可以看成是官方維護的一個大倉庫,專門用來存儲世界各地的程序員編寫的第三方模塊。我們使用pip進行安裝的時候就會去這個倉庫裡面找,找到瞭進行下載,找不到就提示不存在。
當然我們在安裝的時候還可以指定清華源、豆瓣源,因為pypi在國外,下載有時候比較慢,而一旦指定瞭國內的源,那麼就不會去pypi上下載瞭,所以你可以看成國內也有倉庫,專門負責搬運pypi裡面的內容。
上傳模塊至pypi
總共分為三步:編寫模塊、編譯模塊、上傳模塊。
編寫模塊
我們看一下要上傳到pypi的模塊長什麼樣子。
- hanser-module-upload:項目的根目錄
- hanser:模塊名,我們後面可以使用from hanser import xxx,或者import hanser
- hanser下面的兩個py文件:相應的代碼
- LICENSE:開源的 LICENSE,如:Apache License 2.0,MIT License 等等
- README.md:關於項目的描述,描述如何安裝、使用等情況
- setup.py:setuptools 的構建腳本
然後我們看看代碼長什麼樣子。
# calc.py def add(x: int, y: int) -> int: return x + y def sub(x: int, y: int) -> int: return x - y # __init__.py from .calc import add, sub
然後最重要的就是編寫setup.py。
# setup.py 是一個 setuptools 的構建腳本,其中包含瞭項目和代碼文件的信息 # 如果沒有需要先安裝,pip install setuptools import setuptools setuptools.setup( # 項目的名稱 name="anser-module-upload", #項目的版本 version="0.0.1", # 項目的作者 author="佈諾妮亞", # 作者的郵箱 author_email="[email protected]", # 項目描述 description="簡單的加減運算上傳測試", # 項目的長描述 long_description="簡單的加減運算上傳測試", # 以哪種文本格式顯示長描述 long_description_content_type="text/markdown", # 所需要的依賴 install_requires=[], # 比如["flask>=0.10"] # 項目主頁 url="https://www.baidu.com", # 項目中包含的子包,find_packages() 是自動發現根目錄中的所有的子包。 packages=setuptools.find_packages(), # 其他信息,這裡寫瞭使用 Python3,MIT License許可證,不依賴操作系統。 classifiers=[ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], )
編譯
在上傳代碼之前,我們需要將代碼編譯。除瞭setuptools之外,我們還需要一個模塊wheel,如果沒有則需要安裝。
pip install --user --upgrade setuptools wheel
然後對我們的setup.py進行編譯。
python setup.py sdist bdist_wheel
編譯成功之後會在項目中生成多個目錄,其中有一個dist目錄是我們需要上傳的。
上傳
然後就是上傳瞭,我們需要前往(https://pypi.org/account/register/)註冊一個賬號,然後再安裝一個模塊:twine,因為上傳需要使用到它。
pip install --user --upgrade twine
安裝完成之後,就可以使用如下命令上傳 dist 文件夾裡面的文件。
python -m twine upload --repository pypi dist/*
我們看到上傳成功,下面去頁面看一下。
註意:這裡為瞭區分,我們把根目錄名和模塊名取得不一樣,我們需要pip install hanser-module-upload,然後在site-packages下面會有一個hanser目錄,也就是我們所使用的模塊。但是一般情況下,這兩者都是一樣的。比如:我們安裝pandas,那麼得到的模塊也叫做pandas。
下面就來試一試吧:
成功安裝,當然也是可以使用的。
以後如果我們自己寫瞭一個比較不錯的模塊的時候,就可以發佈到pypi上面。
以上就是如何將自己寫的模塊上傳到pypi的詳細內容,更多關於模塊上傳到pypi的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python實現在PyPI上發佈自定義軟件包的方法詳解
- python 如何上傳包到pypi
- python如何將自己的包上傳到PyPi並可通過pip安裝的方法步驟
- 如何將自己的python庫打包成wheel文件並上傳到pypi
- 如何將自己的python代碼發佈在pip install給別人使用你知道嗎