中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用setuptools打包Python代碼

發布時間:2022-01-24 16:17:33 來源:億速云 閱讀:180 作者:zzz 欄目:開發技術

本篇內容介紹了“怎么使用setuptools打包Python代碼”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

setuptools是Python distutils增強版的集合,它可以幫助我們更簡單的創建和分發Python包,尤其是擁有依賴關系的。用戶在使用setuptools創建的包時,并不需要已安裝setuptools,只要一個啟動模塊即可。

怎么使用setuptools打包Python代碼

安裝 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

要用 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

要創建你的 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 來安裝它,就像你在這篇文章中安裝 setuptoolsbuild 一樣!

“怎么使用setuptools打包Python代碼”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

光泽县| 吴堡县| 易门县| 五台县| 濉溪县| 渝北区| 临武县| 梁山县| 余姚市| 酉阳| 迁安市| 吉木乃县| 塘沽区| 泸水县| 长岭县| 荥阳市| 寻甸| 浙江省| 安顺市| 故城县| 栖霞市| 平昌县| 台湾省| 巴彦淖尔市| 龙泉市| 海丰县| 乐至县| 宜章县| 太和县| 临泉县| 怀柔区| 太白县| 平利县| 黄山市| 平山县| 普兰县| 巫山县| 河南省| SHOW| 隆德县| 营山县|