最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python wheel文件詳細介紹

 更新時間:2022年09月22日 15:28:10   作者:fengbingchun  
wheel是新的Python的disribution,用于替代Python傳統(tǒng)的egg文件。目前有超過一半的庫文件有對應(yīng)的wheel文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧

1. wheel介紹

.whl文件(WHL file)也稱為輪子(wheel),這是用于python分發(fā)(distribution)的標準內(nèi)置包格式(standard built-package format)。它包含安裝所需的所有文件和元數(shù)據(jù)(metadata)。.whl文件使用zip進行壓縮。.whl文件還包含有關(guān)此wheel文件支持的Python版本和平臺的信息。.whl文件格式是一種即裝即用格式(ready-to-install format),允許在不構(gòu)建源代碼分發(fā)(without building the source distribution)的情況下運行安裝包。

.whl文件本質(zhì)上是zip文件,這些.whl文件可以使用解壓縮選項(unzip option)或標準解壓縮軟件應(yīng)用程序(如WinZIP和WinRAR)解壓縮。

.whl文件按照以下約定命名:

{dist}-{version}(-{build})?-{python.version}-{abi}-{platform}.whl

如果我們之前使用pip安裝過Python包,那么我們的系統(tǒng)上很可能已經(jīng)有輪子(wheel)被安裝過。pip是安裝wheel的包管理器。

我們可以通過pip安裝已下載的.whl文件:pip install <filename>.whl ,安裝包后,我們可以執(zhí)行Python shell并嘗試導入包:import whl_dist_name

wheel的直接好處是我們與其他人共享我們的包,他們不必擔心構(gòu)建它。他們只需pip install后即可使用該軟件包。它也是一個更小的共享文件(與所有源代碼相比),安裝速度更快,因為它不需要運行安裝腳本。

2. wheel的類型

(1).universal wheel:包含py2.py3-none-any.whl。它在任何操作系統(tǒng)和平臺上都支持Python 2和Python 3。

(2).pure-python wheel:包含py3-none-any.whl或py2-none-any.whl。它支持Python 3或Python 2,但不能同時支持兩者。它在其它方面與universal wheel相同,但它會被標記為py2或py3而不是py2.py3標簽。

(3).platform wheel:支持特定的Python版本和平臺。

3. 創(chuàng)建wheel

(1).將所有模塊(python腳本)、包(包含模塊的文件夾/目錄)保存在父目錄中。隨意命名根目錄,通常與項目相關(guān)。

(2).最好創(chuàng)建一個空的名為__init__.py文件,并將此__init__.py文件放在所有包目錄和子包目錄下。無需將其保存在根目錄中。

(3).創(chuàng)建一個名為setup.py的文件并將其放在根目錄中。此腳本的內(nèi)容至少應(yīng)包括:distribution name, version number, and list of package names

(4).轉(zhuǎn)到你可以運行python和pip命令的命令提示符。在命令提示符下更改目錄并導航到放置setup.py的項目的根目錄,執(zhí)行以下命令:擴展名為.whl的文件將在根目錄下自動創(chuàng)建的子目錄中創(chuàng)建,名為dist。

wheel中并不包含setup.py,wheel不必運行setup.py腳本。

注:需提取安裝wheel setuptools: pip install wheel setuptools,在conda中默認是安裝的

python setup.py bdist_wheel --universal # universal wheel
python setup.py bdist_wheel # pure-Python wheel

這里通過conda在虛擬環(huán)境base下創(chuàng)建一個wheel,取名為testwheel目錄組織結(jié)構(gòu)如下所示:

setup.py內(nèi)容如下:

import setuptools
setuptools.setup(
    name="testwheel",
    version="1.0.0",
    author="fengbingchun",
    author_email="fengbingchun@163.com",
    description="test wheel",
    packages=setuptools.find_packages(),
    url="https://github.com/fengbingchun",
    license="MIT",
    python_requires=">=3.8"
)

testwheel目錄下的__init__.py是個空文件,math目錄下的__init__.py內(nèi)容如下:

from .math_add import *
from .math_sub import *

math_add.py內(nèi)容如下:

def add3(a, b, c):
    print("call add operation: three parameters ...")
    return (a+b+c)
def add2(a, b):
    print("call add operation: two parameters ...")
    return (a+b)

math_sub.py內(nèi)容如下:

def sub3(a, b, c):
    print("call sub operation: three parameters ...")
    return (a-b-c)
def sub2(a, b):
    print("call sub operation: two parameters ...")
    return (a-b)

執(zhí)行如下命令生成wheel,此wheel僅限于在Python3上執(zhí)行,將終端定位到setup.py目錄下

執(zhí)行完上述命令后會產(chǎn)生3個新的目錄,build, dist, testwhell.egg-info,各個目錄的內(nèi)容如下所示,生成的whell在dist目錄下,全名為testwheel-1.0.0-py3-none-any.whl,只需將此文件分發(fā)出去,其他人安裝后即能使用。

4. 導入使用wheel

如果你想在項目中安裝已經(jīng)安裝過的wheel文件,需要更新此wheel的版本號。如果版本號保持不變,pip將不會安裝它?;蛘呦刃遁d已安裝的whell: pip uninstall testwheel

通過conda新建一個虛擬環(huán)境testwheel,用來測試上面生成的testwheel-1.0.0-py3-none-any.whl,將終端定位到其它的test目錄下,并將生成的wheel文件拷貝到此目錄下,安裝,執(zhí)行結(jié)果如下圖所示:

會將此wheel安裝到anaconda3/envs/testwheel/lib/python3.8/site-packages/目錄下,如下圖所示:

在tmp下添加一個test.py文件,用于測試wheel,內(nèi)容如下:

from testwheel.math import math_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("test finish")

執(zhí)行結(jié)果如下所示:可見正確的調(diào)用了wheel中的接口

如果需要反復的調(diào)整wheel的內(nèi)容,需要反復的測試,又不想修改version number,一種方法是可先卸載已安裝的wheel,然后再次安裝新的wheel,如下圖所示:也可使用--force-reinstall

GitHub傳送門

到此這篇關(guān)于Python wheel文件詳細介紹的文章就介紹到這了,更多相關(guān)Python wheel文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python使用wmi模塊獲取windows下的系統(tǒng)信息 監(jiān)控系統(tǒng)

    python使用wmi模塊獲取windows下的系統(tǒng)信息 監(jiān)控系統(tǒng)

    Python用WMI模塊獲取Windows系統(tǒng)的硬件信息:硬盤分區(qū)、使用情況,內(nèi)存大小,CPU型號,當前運行的進程,自啟動程序及位置,系統(tǒng)的版本等信息。
    2015-10-10
  • 利用Python將社交網(wǎng)絡(luò)進行可視化

    利用Python將社交網(wǎng)絡(luò)進行可視化

    這篇文章介紹了利用Python將社交網(wǎng)絡(luò)進行可視化,主要是一些Python的第三方庫來進行社交網(wǎng)絡(luò)的可視化,利用領(lǐng)英(Linkedin)的社交關(guān)系數(shù)據(jù)展開介紹,內(nèi)容可當學習練習題有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖)

    詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖)

    這篇文章主要介紹了詳解python 利用echarts畫地圖(熱力圖)(世界地圖,省市地圖,區(qū)縣地圖),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python實現(xiàn)windows下模擬按鍵和鼠標點擊的方法

    Python實現(xiàn)windows下模擬按鍵和鼠標點擊的方法

    這篇文章主要介紹了Python實現(xiàn)windows下模擬按鍵和鼠標點擊的方法,涉及Python模擬實現(xiàn)鼠標及鍵盤事件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解

    Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解

    今天小編就為大家分享一篇Pandas 數(shù)據(jù)處理,數(shù)據(jù)清洗詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python如何通過變量ID得到變量的值

    Python如何通過變量ID得到變量的值

    這篇文章主要介紹了Python如何通過變量ID得到變量的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python庫skimage給灰度圖像染色的方法示例

    python庫skimage給灰度圖像染色的方法示例

    這篇文章主要介紹了python庫skimage給灰度圖像染色的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • 解決python selenium3啟動不了firefox的問題

    解決python selenium3啟動不了firefox的問題

    今天小編就為大家分享一篇解決python selenium3啟動不了firefox的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python使用matplotlib畫柱狀圖、散點圖

    python使用matplotlib畫柱狀圖、散點圖

    這篇文章主要為大家詳細介紹了python使用matplotlib畫柱狀圖、散點圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python之如何查找多層嵌套字典的值

    python之如何查找多層嵌套字典的值

    這篇文章主要介紹了python之如何查找多層嵌套字典的值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

印江| 西吉县| 开封县| 迁西县| 大方县| 六盘水市| 邹平县| 绵竹市| 桐乡市| 上饶县| 桐乡市| 罗城| 乌鲁木齐县| 奈曼旗| 静乐县| 团风县| 沈阳市| 墨脱县| 根河市| 滦南县| 桐城市| 西宁市| 临漳县| 西贡区| 阆中市| 信阳市| 天祝| 衡阳市| 哈巴河县| 大悟县| 元阳县| 高陵县| 嘉荫县| 凉城县| 新宁县| 承德县| 安西县| 榆中县| 澄迈县| 靖安县| 肇东市|