您好,登錄后才能下訂單哦!
本篇內容介紹了“怎么使用setuptools打包Python代碼”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
setuptools是Python distutils增強版的集合,它可以幫助我們更簡單的創建和分發Python包,尤其是擁有依賴關系的。用戶在使用setuptools創建的包時,并不需要已安裝setuptools,只要一個啟動模塊即可。
安裝和更新 setuptools
的最簡單方法是使用 pip
:
$ sudo python -m pip install --upgrade setuptools
我創建了一個簡單的 Python 庫,名為 myhellolib
,來作為需要打包的示例代碼。這個庫接受一個字符串,然后用大寫字母打印出這個字符串。
它只有兩行代碼,但項目結構很重要,所以首先創建目錄樹:
$ mkdir -p myhellolib.git/myhellolib
為了確認這個項目是一個可導入的庫(即 Python “模塊”),在代碼目錄中創建一個空文件 __init__.py
,同時創建一個包含代碼的文件:
$ touch myhellolib.git/myhellolib/__init__.py$ touch myhellolib.git/myhellolib/myhellolib.py
在 myhellolib.py
文件中,輸入簡單的 Python 代碼:
def greeter(s): print(s.upper())
這就是寫好的庫。
在打包之前,測試一下你的庫。創建一個 myhellolib.git/test.py
文件并輸入以下代碼:
import myhellolib.myhellolib as hellohello.greeter("Hello Opensource.com.")
運行該腳本:
$ cd myhellolib.git$ python ./test.pyHELLO OPENSOURCE.COM
它可以工作,所以現在你可以把它打包了。
要用 setuptools
打包一個項目,你必須創建一個 .toml
文件,將 setuptools
作為構建系統。將這段文字放在項目目錄下的 myhellolib.toml
文件中。
[build-system]requires = ["setuptools", "wheel"]build-backend = "setuptools.build_meta"
接下來,創建一個名為 setup.py
的文件,包含項目的元數據:
from setuptools import setupsetup( name='myhellolib', version='0.0.1', packages=['myhellolib'], install_requires=[ 'requests', 'importlib; python_version == "3.8"', ],)
不管你信不信,這就是 setuptools
需要的所有設置。你的項目已經可以進行打包。
要創建你的 Python 包,你需要一個構建器。一個常見的工具是 build
,你可以用 pip
安裝它:
$ python -m pip install build --user
構建你的項目:
$ python -m build
過了一會兒,構建完成了,在你的項目文件夾中出現了一個新的目錄,叫做 dist
。這個文件夾包含一個 .tar.gz
和一個 .whl
文件。
這是你的第一個 Python 包! 下面是包的內容:
$ tar --list --file dist/myhellolib-0.0.1.tar.gzmyhellolib-0.0.1/myhellolib-0.0.1/PKG-INFOmyhellolib-0.0.1/myhellolib/myhellolib-0.0.1/myhellolib/__init__.pymyhellolib-0.0.1/myhellolib/myhellolib.pymyhellolib-0.0.1/myhellolib.egg-info/myhellolib-0.0.1/myhellolib.egg-info/PKG-INFOmyhellolib-0.0.1/myhellolib.egg-info/SOURCES.txtmyhellolib-0.0.1/myhellolib.egg-info/dependency_links.txtmyhellolib-0.0.1/myhellolib.egg-info/requires.txtmyhellolib-0.0.1/myhellolib.egg-info/top_level.txtmyhellolib-0.0.1/setup.cfgmyhellolib-0.0.1/setup.py$ unzip -l dist/myhellolib-0.0.1-py3-none-any.whl Archive: dist/myhellolib-0.0.1-py3-none-any.whlName----myhellolib/__init__.pymyhellolib/myhellolib.pymyhellolib-0.0.1.dist-info/METADATAmyhellolib-0.0.1.dist-info/WHEELmyhellolib-0.0.1.dist-info/top_level.txtmyhellolib-0.0.1.dist-info/RECORD-------6 files
現在你知道了打包你的 Python 包是多么容易,你可以使用 Git 鉤子、GitLab Web 鉤子、Jenkins 或類似的自動化工具來自動完成這個過程。你甚至可以把你的項目上傳到 PyPi,這個流行的 Python 模塊倉庫。一旦它在 PyPi 上,用戶就可以用 pip
來安裝它,就像你在這篇文章中安裝 setuptools
和 build
一樣!
“怎么使用setuptools打包Python代碼”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。