本篇作為 Python 虛擬環(huán)境管理——conda 的續(xù)集,介紹一下另一個(gè) Python 虛擬環(huán)境管理工具 venv
。
venv 和 conda 的區(qū)別
venv
和 conda
都是用于創(chuàng)建虛擬環(huán)境和管理包的工具,但它們之間有一些不同。
Python3.3 以上,venv
是內(nèi)置的。它會(huì)直接在當(dāng)前項(xiàng)目(當(dāng)前文件夾下)安裝 Python 虛擬環(huán)境,因此它是“去中心化”管理的,無法查看已安裝的所有環(huán)境。
conda
是一個(gè)跨平臺的開源包管理器,可以用于創(chuàng)建和管理虛擬環(huán)境,而且不限于 Python;并且它支持多種操作系統(tǒng)和語言,可以跨語言管理各種包和庫。conda
是中心化管理的,可以通過 conda env list
查看已安裝的虛擬環(huán)境列表
包的來源:venv
只能使用 pip
作為安裝來源;而 conda
有許多 channel (默認(rèn)為 defaults
,另外有第三方社區(qū)渠道 conda-forge
)作為包的安裝來源。
venv 使用
由于 venv
直接在項(xiàng)目下安裝虛擬環(huán)境,所以要先進(jìn)入項(xiàng)目的主目錄。
安裝一個(gè)名為 titanic
的虛擬環(huán)境:
python3 -m venv titanic
安裝完成后,會(huì)在當(dāng)前目錄下出現(xiàn)名為
titanic
的文件夾,其中包含了一些二進(jìn)制文件,之后安裝的庫也會(huì)儲(chǔ)存在這里。64
位系統(tǒng)中,titanic/lib
文件夾存儲(chǔ) 32 位版本的 Python 庫,而titanic/lib64
文件夾存儲(chǔ) 64
位版本的 Python庫。
顯示系統(tǒng)正在使用的 Python 解釋器的路徑:
which python
此時(shí)發(fā)現(xiàn),用的不是剛安裝的虛擬環(huán)境中的 Python。激活虛擬環(huán)境:
source titanic/bin/activate
此時(shí)我們已經(jīng)在虛擬環(huán)境中了,可以安裝 Python 第三方庫了。
可以通過 pip freeze
查看已經(jīng)安裝的庫,以及相應(yīng)的版本:
python3 -m pip freeze
利用 Linux 管道命令,導(dǎo)出為文本文件:
python3 -m pip freeze > requirements.txt
之后可以利用該文本文件,方便地重新構(gòu)建虛擬環(huán)境:
python3 -m pip install -r requirements.txt
ps: 上面命令行中
-m
參數(shù)用于執(zhí)行指定的模塊,如venv
,pip
安裝第三方庫
PyPI
可以通過 pip
從 PyPI(Python Package Index)安裝庫。
PyPI 是 Python 社區(qū)維護(hù)的一個(gè)軟件包倉庫,其中大部分軟件包已經(jīng)被編譯成二進(jìn)制文件。使用 pip install
命令時(shí),默認(rèn)情況下,pip 會(huì)從 PyPI 下載預(yù)編譯的二進(jìn)制文件并安裝到系統(tǒng)中。
.whl
文件就是已經(jīng)預(yù)編譯好的二進(jìn)制文件。如果觀察軟件包的安裝過程,就會(huì)發(fā)現(xiàn)其中有一步是 .whl
文件的下載。即便是同一個(gè)軟件包版本,不同操作系統(tǒng)和處理器架構(gòu)所需要的 .whl
文件也不一樣。
以 pandas 安裝為例??吹?.whl
文件的名字中不僅包含了軟件包的版本,還有操作系統(tǒng)、處理器架構(gòu)等信息。
然而,有些軟件包可能沒有預(yù)編譯的二進(jìn)制文件或者需要根據(jù)特定的環(huán)境或需求進(jìn)行編譯和定制,這時(shí)候需要使用其他方式從源代碼安裝軟件包。
從其他索引源安裝
可以通過 --index-url
指定 PyPI 之外的軟件包索引源:
python3 -m pip install --index-url http://index.example.com/simple/ SomeProject
也可以為默認(rèn) PyPI 源添加額外的索引源:
python3 -m pip install --extra-index-url http://index.example.com/simple/ SomeProject
從源代碼安裝
從源代碼安裝就是從軟件包的源代碼文件中構(gòu)建并安裝軟件包,而不是直接從預(yù)編譯的二進(jìn)制文件安裝。從源代碼安裝會(huì)更加靈活,可以針對特定的平臺或環(huán)境進(jìn)行優(yōu)化或配置。但從源代碼安裝通常需要進(jìn)行一些配置和編譯步驟。
例子:
cd google-auth
python3 -m pip install .
首先進(jìn)入軟件包源代碼的主目錄(這里是 google-auth
),然后 python3 -m pip install .
從源代碼安裝時(shí),可以選擇以開發(fā)模式(development mode)安裝,指明 --editable
:
python3 -m pip install --editable .
開發(fā)模式,顧名思義,就是作為開發(fā)者而不是使用者。任何對源代碼的修改都可以直接對軟件包產(chǎn)生影響,而不用重新安裝。文章來源:http://www.zghlxwxcb.cn/news/detail-734563.html
從本地壓縮包安裝
python3 -m pip install requests-2.18.4.tar.gz
參考:Installing packages using pip and virtual environments文章來源地址http://www.zghlxwxcb.cn/news/detail-734563.html
到了這里,關(guān)于Python 虛擬環(huán)境管理—— venv的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!