如何製作whl檔案

2021-09-23 07:37:29 字數 3219 閱讀 2434

wheel檔案

wheel和egg都是python的打包格式,目的是支援不需要編譯或製作的安裝過程,實際上也是一種壓縮檔案,將.whl的字尾改為.zip即可可看到壓縮包裡面的內容。按照官網說法,wheels是發行版python的新標準並且要取代.egg。 

egg格式是由setuptools在2023年引入,而wheel格式是由pep427在2023年定義。 wheel現在被認為是python的二進位製包的標準格式。

以下是wheel和egg的主要的不同點:

distutils和setuptools工具setuptools重點在於setup.py檔案編寫

setup.py引數介紹:

將python檔案(.py)封裝成可安裝使用的模組

參考: 

printtest.py

def test():

print('print test')

將以上.py檔案做成python模組,需要在相同目錄下建立setup.py檔案,setup.py中輸入配置資訊:

from setuptools import setup

setup(name='printtest',

version='1.0',

py_modules=['printtest'],

)

開啟終端,定位到該資料夾下,輸入:

# python setup.py sdist

此時在目錄中生成dist資料夾,資料夾中有testpg-1.0.tar.gz檔案,使用者安裝的話只需要testpg-1.0.tar.gz檔案即可。將此檔案解壓得到testpg-1.0資料夾,會發現該資料夾有我們剛剛書寫的3個py檔案,還有乙個pkg-info,開啟該檔案,會顯示該模組的具體資訊:由於我們沒有設定,所以為unkown

metadata-version: 1.0

name: printtest

version: 1.0

summary: unknown

home-page: unknown

author: unknown

author-email: unknown

license: unknown

description: unknown

platform: unknown

終端定位到此資料夾下,輸入以下命令,模組將會被安裝到直譯器對應的lib/site-packages目錄下:

python setup.py install

安裝後,會發現lib/site-packages目錄下存在printtest.py檔案和printtest-1.0-py3.6.egg-info 

應用:

import printtest

printtest.test()

輸出:

print test

封裝python包

匯入單個python檔案時成為python模組,而包含多個python檔案的資料夾成為乙個python包。本節主要講述怎樣封裝乙個python包。 

1.建立乙個資料夾,將需要封裝的pagtest資料夾(裡面為.py檔案,需要包括乙個__init__.py檔案,內容可以為空)放到該資料夾中,然後建立setup.py檔案對包進行配置:

from setuptools import setup

setup(name='pagtest',

version='1.0.0',

description='a print test for pypi',

author='winycg',

author_email='[email protected]',

url='',

license='mit',

keywords='ga nn',

project_urls=,

packages=['pagtest'],

install_requires=['numpy>=1.14', 'tensorflow>=1.7'],

python_requires='>=3'

)

2.建立readme.txt檔案用於對檔案的安裝以及使用資訊做描述 

3.目前資料夾的目錄的架構為:

pagtest/

__init__.py

print1.py

print2.py

setup.py

readme.txt

輸入以下命令進行打包,製作source distribution(源**發布包),此命令將會把所有內容在dist/目錄打包為pagtest-1.0.0.tar.gz

python setup.py sdist

4.上傳到pypi上。上傳時,可以建立乙個賬戶驗證檔案~/.pypirc(windows不可以,因為檔案命名中含有非法字元),也可以在上傳時輸入賬戶和密碼。

[distutils]

index-servers=pypi

[pypi]

repository =

username = password =

5.將命令列定位到此資料夾下,輸入命令對dist目錄下的pagtest-1.0.0.tar.gzt包進行上傳,twine為python包需要安裝:

twine upload dist/*

製作python包為wheel檔案

wheel是乙個已經編譯好的包,在安裝時不需要編譯過程,安裝whl檔案時要比發布的原始檔安裝要快。 

在如上第2步後,輸入如下命令即可在生成.whl

python setup.py bdist_wheel

.whl檔案在dist目錄下,上傳到pypi:

twine upload dist/*

更新python包

修改setup.py中的版本號,然後直接上傳即可

參考:wheel和egg的不同

怎樣將自己寫的包傳達到pypi

發布你自己的輪子 - pypi打包上傳實踐

pypi官網上傳包教程

Python whl檔案是神?如何安裝whl檔案?

whl格式本質上是乙個壓縮包,裡面包含了py檔案,以及經過編譯的pyd檔案。使得可以在不具備編譯環境的情況下,選擇合適自己的python環境進行安裝。一 安裝whl檔案之前,先得安裝wheel軟體 步驟 1.用管理員方式開啟cmd 2.首先通過pip命令安裝wheel 如果提示 pip 不是內部或外...

python安裝whl檔案

第一步 這當然是預設的一步,首先你有了要安裝的.whl檔案,這裡有個 常見的.whl大致都能找到。第二步 在cmd模式下,進入包含要安裝的.whl檔案的資料夾,然後輸入pip install whl 這樣pip就自動幫你安裝了,一般安裝的檔案名字都很長,只要輸入 前幾個字母,然後按table鍵,cm...

python安裝whl檔案

1.安裝wheel庫 pip install wheel 本地安裝 2.安裝whl檔案 安裝完wheel後,1 如果已將 python27 scripts目錄新增到path中,可以直接在whl檔案所在目錄用管理員開啟乙個cmd視窗,直接執行下面的語句 pip install python dateu...