




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第Pythonwheel文件詳細介紹目錄1.wheel介紹2.wheel的類型3.創建wheel4.導入使用wheel
1.wheel介紹
.whl文件(WHLfile)也稱為輪子(wheel),這是用于python分發(distribution)的標準內置包格式(standardbuilt-packageformat)。它包含安裝所需的所有文件和元數據(metadata)。.whl文件使用zip進行壓縮。.whl文件還包含有關此wheel文件支持的Python版本和平臺的信息。.whl文件格式是一種即裝即用格式(ready-to-installformat),允許在不構建源代碼分發(withoutbuildingthesourcedistribution)的情況下運行安裝包。
.whl文件本質上是zip文件,這些.whl文件可以使用解壓縮選項(unzipoption)或標準解壓縮軟件應用程序(如WinZIP和WinRAR)解壓縮。
.whl文件按照以下約定命名:
{dist}-{version}(-{build})-{python.version}-{abi}-{platform}.whl
如果我們之前使用pip安裝過Python包,那么我們的系統上很可能已經有輪子(wheel)被安裝過。pip是安裝wheel的包管理器。
我們可以通過pip安裝已下載的.whl文件:pipinstallfilename.whl,安裝包后,我們可以執行Pythonshell并嘗試導入包:importwhl_dist_name
wheel的直接好處是我們與其他人共享我們的包,他們不必擔心構建它。他們只需pipinstall后即可使用該軟件包。它也是一個更小的共享文件(與所有源代碼相比),安裝速度更快,因為它不需要運行安裝腳本。
2.wheel的類型
(1).universalwheel:包含py2.py3-none-any.whl。它在任何操作系統和平臺上都支持Python2和Python3。
(2).pure-pythonwheel:包含py3-none-any.whl或py2-none-any.whl。它支持Python3或Python2,但不能同時支持兩者。它在其它方面與universalwheel相同,但它會被標記為py2或py3而不是py2.py3標簽。
(3).platformwheel:支持特定的Python版本和平臺。
3.創建wheel
(1).將所有模塊(python腳本)、包(包含模塊的文件夾/目錄)保存在父目錄中。隨意命名根目錄,通常與項目相關。
(2).最好創建一個空的名為__init__.py文件,并將此__init__.py文件放在所有包目錄和子包目錄下。無需將其保存在根目錄中。
(3).創建一個名為setup.py的文件并將其放在根目錄中。此腳本的內容至少應包括:distributionname,versionnumber,andlistofpackagenames
(4).轉到你可以運行python和pip命令的命令提示符。在命令提示符下更改目錄并導航到放置setup.py的項目的根目錄,執行以下命令:擴展名為.whl的文件將在根目錄下自動創建的子目錄中創建,名為dist。
wheel中并不包含setup.py,wheel不必運行setup.py腳本。
注:需提取安裝wheelsetuptools:pipinstallwheelsetuptools,在conda中默認是安裝的
pythonsetup.pybdist_wheel--universal#universalwheel
pythonsetup.pybdist_wheel#pure-Pythonwheel
這里通過conda在虛擬環境base下創建一個wheel,取名為testwheel目錄組織結構如下所示:
setup.py內容如下:
importsetuptools
setuptools.setup(
name="testwheel",
version="1.0.0",
author="fengbingchun",
author_email="fengbingchun@163.com",
description="testwheel",
packages=setuptools.find_packages(),
url="/fengbingchun",
license="MIT",
python_requires="=3.8"
)
testwheel目錄下的__init__.py是個空文件,math目錄下的__init__.py內容如下:
from.math_addimport*
from.math_subimport*
math_add.py內容如下:
defadd3(a,b,c):
print("calladdoperation:threeparameters...")
return(a+b+c)
defadd2(a,b):
print("calladdoperation:twoparameters...")
return(a+b)
math_sub.py內容如下:
defsub3(a,b,c):
print("callsuboperation:threeparameters...")
return(a-b-c)
defsub2(a,b):
print("callsuboperation:twoparameters...")
return(a-b)
執行如下命令生成wheel,此wheel僅限于在Python3上執行,將終端定位到setup.py目錄下
執行完上述命令后會產生3個新的目錄,build,dist,testwhell.egg-info,各個目錄的內容如下所示,生成的whell在dist目錄下,全名為testwheel-1.0.0-py3-none-any.whl,只需將此文件分發出去,其他人安裝后即能使用。
4.導入使用wheel
如果你想在項目中安裝已經安裝過的wheel文件,需要更新此wheel的版本號。如果版本號保持不變,pip將不會安裝它。或者先卸載已安裝的whell:pipuninstalltestwheel
通過conda新建一個虛擬環境testwheel,用來測試上面生成的testwheel-1.0.0-py3-none-any.whl,將終端定位到其它的test目錄下,并將生成的wheel文件拷貝到此目錄下,安裝,執行結果如下圖所示:
會將此wheel安裝到anaconda3/envs/testwheel/lib/python3.8/site-packages/目錄下,如下圖所示:
在tmp下添加一個test.py文件,用于測試wheel,內容如下:
fromtestwheel.mathimportmath_add,math_sub
a,b,c=10,5,2
print("add3:",math_add.add3(a,b,c))
print("add2:",math_add.add2(a,b))
print("sub3:",math_sub.sub3(a,b,c))
print("sub2:",math_sub.sub2(a,b))
print("
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 航空產品造價管理辦法
- 項目質量安全培訓課件
- 異常處理方法培訓課件
- 第二次質量數學試卷
- 全優潤滑培訓課件
- 高中選修數學試卷
- 肌少癥品管圈課件
- 2025年河北唐山灤南縣醫院招聘23人筆試歷年專業考點(難、易錯點)附帶答案詳解
- 2025至2030促生長發育食品行業市場發展分析及發展趨勢與投資報告
- 2025至2030櫥柜行業市場深度研究及發展前景投資可行性分析報告
- 智慧型陸基式漁業產業園項目可行性研究報告模板-備案拿地
- 基本藥物培訓課件資料
- 吉林省長春市2024-2025學年八年級下學期期末測試數學試卷(含答案)
- 2025秋三年級上冊語文上課課件 9 犟龜
- 電子文件長期保存技術-洞察及研究
- 中外航海文化知到課后答案智慧樹章節測試答案2025年春中國人民解放軍海軍大連艦艇學院
- 人工智能引論智慧樹知到課后章節答案2023年下浙江大學
- 園林綠化工程竣工驗收資料表格-綠化工程竣工驗收單
- 甲級寫字樓服務標準
- 海寧市國有公司對外擔保行為監督管理暫行辦法
- 開工前施工單位需提供安全資料
評論
0/150
提交評論