成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是Python Wheels?為什么要關心它?

開發 后端
Python .whl文件(或wheels)是Python中很少討論的一部分,但是它們對Python包的安裝過程非常重要。如果您已經使用pip安裝了Python包,那么很有可能是輪子(wheels)使安裝速度更快、效率更高了。

前言

Python .whl文件(或wheels)是Python中很少討論的一部分,但是它們對Python包的安裝過程非常重要。如果您已經使用pip安裝了Python包,那么很有可能是輪子(wheels)使安裝速度更快、效率更高了。

輪子是Python生態系統的一個組件,它有助于使包的安裝工作正常進行。它們允許更快的安裝和更穩定的包分發過程。在本教程中,您將深入了解輪子是什么,它們提供了什么好處,以及它們是如何獲得吸引力并使使用Python變得更方便的。

 

[[337088]]

輪子簡介

在學習如何將項目打包到輪子中之前,從用戶的角度了解使用輪子是什么樣子是很有幫助的。

可以像往常一樣在環境中安裝一個Python包來開始這個實驗。在這種情況下,安裝uWSGI 2.0.x版本:

  1. $ python -m pip install 'uwsgi==2.0.*' 
  2.  2 Collecting uwsgi==2.0.* 
  3.  3   Downloading uwsgi-2.0.18.tar.gz (801 kB) 
  4.  4      |████████████████████████████████| 801 kB 1.1 MB/s 
  5.  5 Building wheels for collected packages: uwsgi 
  6.  6   Building wheel for uwsgi (setup.py) ... done 
  7.  7   Created wheel for uwsgi ... uWSGI-2.0.18-cp38-cp38-macosx_10_15_x86_64.whl 
  8.  8   Stored in directory: /private/var/folders/jc/8_hqsz0x1tdbp05 ... 
  9.  9 Successfully built uwsgi 
  10. 10 Installing collected packages: uwsgi 
  11. 11 Successfully installed uwsgi-2.0.18 

要完全安裝uWSGI, pip需要經過幾個不同的步驟:

  • 在第3行,它下載一個名為uwsgi-2.0.18.tar.gz的TAR文件(tarball),該文件是用gzip壓縮的。
  • 在第6行,它接受tarball并通過調用setup.py構建一個.whl文件。
  • 在第7行,它將輪子標記為uWSGI-2.0.18-cp38-cp38-macosx_10_15_x86_64.whl。
  • 在第10行,它在構建了輪子之后安裝實際的包。

pip檢索的tar.gz tarball是一個源分發包,或sdist,而不是一個輪子。在某些方面,sdist是輪子的反義詞。

源代碼發行版包含源代碼。這不僅包括Python代碼,還包括與包綁定的任何擴展模塊的源代碼(通常用C或c++編寫)。對于源發行版,擴展模塊是在用戶端而不是開發人員端編譯的。

源分發版還包含一個元數據包,位于名為.egg-info的目錄中。該元數據有助于構建和安裝包,但用戶實際上并不需要使用它做任何事情。

從開發人員的角度來看,當您運行以下命令時,會創建一個源分發包:

  1. $ python setup.py sdist 

現在嘗試安裝一個不同的包:chardet:

  1. $ python -m pip install 'chardet==3.*' 
  2.  2 Collecting chardet 
  3.  3   Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB) 
  4.  4      |████████████████████████████████| 133 kB 1.5 MB/s 
  5.  5 Installing collected packages: chardet 
  6.  6 Successfully installed chardet-3.0.4 

您可以看到一個與uWSGI安裝明顯不同的輸出。

安裝chardet時直接從PyPI下載一個.whl文件。車輪名稱為chardet-3.0.4-py2.py3-none-any。whl遵循特定的命名約定,稍后您將看到。從用戶的角度來看,更重要的是,當pip在PyPI上找到一個兼容的滾輪時,并不存在構建階段。

從開發人員的角度來看,輪子是運行以下命令的結果:

  1. $ python setup.py bdist_wheel 

為什么uWSGI給你一個源分布,而chardet提供一個輪子?您可以通過查看PyPI上每個項目的頁面并導航到下載文件區域來了解原因。本節將向您展示pip在PyPI索引服務器上實際看到的內容:

  • 由于項目的復雜性,uWSGI只提供了一個源分發版(uWSGI -2.0.18.tar.gz)。
  • chardet同時提供了一個輪盤和一個源代碼發行版,但是如果與您的系統兼容,pip會更喜歡輪盤。稍后您將看到如何確定兼容性。

另一個用于輪子安裝的兼容性檢查示例是psycopg2,它為Windows提供了大量的車輪,但沒有為Linux或macOS客戶端提供任何輪子。這意味著,根據您的具體設置,pip安裝psycopg2可以獲取一個滾輪或源分發版。

為了避免這些類型的兼容性問題,一些包提供了多個輪子,每個輪子都針對特定的Python實現和底層操作系統。

到目前為止,您已經看到了輪子和sdist之間的一些明顯區別,但更重要的是這些區別對安裝過程的影響。

 

什么是Python Wheels?為什么要關心它?

輪子加速安裝

在上面,您看到了獲取預構建輪子的安裝和下載sdist的安裝的比較。輪子使得Python包的端到端安裝速度更快,原因有兩個:

  • 在其他條件相同的情況下,輪子通常比源分發包更小,這意味著它們可以在網絡中更快地移動。
  • 直接從wheels安裝避免了從源分發版構建包的中間步驟。

幾乎可以保證,安裝chardet只需uWSGI所需時間的一小部分。然而,這是一種不公平的比較,因為chardet是一個明顯更小和更簡單的包。使用不同的命令,您可以創建一個更直接的比較,它將演示輪子造成的差異有多大。

你可以通過-no-binary選項讓pip忽略它對車輪的傾斜:

  1. time python -m pip install \ 
  2.       --no-cache-dir \ 
  3.       --force-reinstall \ 
  4.       --no-binary=:all: \ 
  5.       cryptography 

這個命令計算加密包的安裝時間,告訴pip使用源分發包,即使有合適的輪可用。包括:all:使規則適用于密碼學及其所有依賴關系。

在我的機器上,從開始到結束大約需要32秒。不僅安裝要花費很長時間,而且構建加密還需要提供OpenSSL開發頭,并可用于Python。

現在可以重新安裝密碼學,但是這次要確保pip使用來自PyPI的wheels。因為pip更喜歡輪子,所以這類似于完全不帶參數調用pip install。但在這種情況下,你可以讓意圖顯式通過要求車輪-純二進制:

此選項僅花費4秒多一點的時間,即僅為密碼學及其依賴項使用源分發版時所用時間的八分之一。

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2024-10-18 11:55:47

2022-09-15 20:57:55

身聯網IoB物聯網

2023-11-07 08:00:00

Kubernetes

2018-03-22 14:47:13

容器開發人員筆記本

2019-04-22 14:20:08

區塊鏈數字貨幣比特幣

2022-08-24 15:03:21

數據智能數據分析

2021-10-09 22:10:30

Windows 11Windows微軟

2017-07-18 09:02:05

磁盤克隆軟件

2018-01-31 14:50:04

LinuxmacOS .bashrc

2025-04-10 08:00:00

服務限流開發高并發

2022-11-15 14:52:09

虛擬孿生數字孿生

2024-04-22 15:31:02

物聯網

2010-10-26 13:44:15

2023-10-08 14:36:59

2022-12-29 10:16:12

觀察性系統監視

2023-07-20 10:59:04

2020-09-17 14:32:52

AI

2019-11-22 16:09:02

企業安全網絡風險管理IT

2019-11-23 17:23:53

網絡風險網絡安全網絡攻擊

2020-08-12 07:53:39

技術債技術科學
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区三区蜜桃视频 | 日韩成人免费中文字幕 | 蜜桃久久 | 久久精品欧美一区二区三区不卡 | 九九热精品视频在线观看 | 久久亚洲高清 | 一区久久 | 成人精品国产免费网站 | 成人av一区二区亚洲精 | www.色婷婷 | 少妇诱惑av | 精品乱子伦一区二区三区 | 国产精品久久久久久妇女 | 国产精品永久久久久 | 罗宾被扒开腿做同人网站 | 欧美亚洲高清 | 日韩中文字幕在线免费 | 日本成人免费网站 | 在线观看免费av网 | 夜夜爽99久久国产综合精品女不卡 | 99热视| 日韩一级精品视频在线观看 | 久久伊人久久 | 欧美www在线观看 | 日韩成人中文字幕 | 日本久久黄色 | 久久久久久国产精品免费免费 | 国产高清在线 | 亚洲免费观看视频网站 | 国产一区二区久久 | 亚洲成人精品在线 | 九七午夜剧场福利写真 | 成人av电影网 | 一区二区三区欧美 | 成人在线免费观看 | 精品国产一区二区久久 | 亚洲视频在线观看免费 | 国产成人免费视频网站视频社区 | 可以免费观看的av | 亚洲va中文字幕 | 国产精品自拍视频网站 |