一键打包,随时运行,Python3项目虚拟环境一键整合包的制作(Venv)
之前我們介紹了如何使用嵌入式 Python3 環境給項目制作一鍵整合包,在使用嵌入式 Python 環境時,通常是作為另一個應用程序的一部分,而Python3虛擬環境是為了在開發過程中隔離項目所需的 Python 環境。虛擬環境允許我們在同一臺計算機上的不同項目中使用不同的 Python 版本和軟件包,而不會相互干擾。
本次我們利用Python3自帶的虛擬環境(venv)功能來給項目制作一鍵整合包。
創建虛擬環境
首先確保本地環境已經安裝好了Python3開發環境,如果沒有,請移步:一網成擒全端涵蓋,在不同架構(Intel x86/Apple m1 silicon)不同開發平臺(Win10/Win11/Mac/Ubuntu)上安裝配置Python3.10開發環境,囿于篇幅,這里不再贅述。
隨后在克隆自己的項目,用于打包,這里我們以Bert-vits2-2.3的項目為例子:
git clone https://github.com/v3ucn/Bert-vits2-V2.3
隨后進入項目的根目錄:
cd Bert-vits2-V2.3
正常流程下我們會直接執行pip install -r requirements.txt在當前環境下安裝依賴。
但是我們現在不使用當前開發環境,而是使用虛擬環境。
首先創建一個虛擬環境的工作目錄:
mkdir venv
隨后進入venv目錄
cd venv
創建獨立的虛擬環境:
python -m venv .
該命令python -m venv <目錄位置> 可以創建一個獨立的Python3運行環境。venv目錄里面有python3、pip3等可執行文件,實際上是鏈接到Python系統目錄的軟鏈接。
此時,執行激活命令就可以進入該虛擬環境venv:
E:\work\Bert-vits2-2.3\venv>.\Scripts\activate
(venv) E:\work\Bert-vits2-2.3\venv>
可以看到,當前命令行的前綴有一個(venv)代表我們現在處于虛擬環境之中。
注意該虛擬環境和當前系統的Python3環境是隔離的。
我們也可也執行命令退出虛擬環境venv:
(venv) E:\work\Bert-vits2-2.3\venv>.\Scripts\deactivate.bat
E:\work\Bert-vits2-2.3\venv>
通過deactivate命令可以推出虛擬環境。
用虛擬環境venv給項目安裝依賴
創建好了虛擬環境之后,我們就可以給當前的項目(Bert-vits2-2.3)安裝依賴了:
.\venv\Scripts\pip.exe install -r .\requirements.txt
注意,這里所有的依賴文件都會安裝到虛擬環境目錄,即venv。
如果愿意,也可以執行命令來升級虛擬環境的pip軟件:
.\venv\Scripts\python.exe -m pip install --upgrade pip
完成依賴的安裝以后,可以執行命令來查看項目的依賴列表:
E:\work\Bert-vits2-2.3>.\venv\Scripts\pip.exe list
Package Version
------------------ ------------
certifi 2023.11.17
charset-normalizer 3.3.2
colorama 0.4.6
coloredlogs 15.0.1
filelock 3.13.1
flatbuffers 23.5.26
ftfy 6.1.3
humanfriendly 10.0
idna 3.6
imageio 2.33.1
Jinja2 3.1.2
lazy_loader 0.3
MarkupSafe 2.1.3
mpmath 1.3.0
networkx 3.2.1
numpy 1.23.5
onnx 1.14.0
onnxruntime-gpu 1.16.2
opencv-python 4.7.0.72
packaging 23.2
Pillow 9.5.0
pip 23.0.1
protobuf 4.23.2
pyreadline3 3.4.1
PyWavelets 1.5.0
regex 2023.12.25
requests 2.31.0
scikit-image 0.21.0
scipy 1.11.4
setuptools 65.5.0
sympy 1.12
tifffile 2023.12.9
tk 0.1.0
torch 2.0.1+cu118
torchaudio 2.0.2+cu118
torchvision 0.15.2+cu118
tqdm 4.66.1
typing_extensions 4.9.0
urllib3 2.1.0
wcwidth 0.2.12
也可以通過pip的show命令來查看依賴的具體位置:
E:\work\Bert-vits2-2.3>.\venv\Scripts\pip.exe show numpy
Name: numpy
Version: 1.23.5
Summary: NumPy is the fundamental package for array computing with Python.
Home-page: https://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email:
License: BSD
Location: e:\work\Bert-vits2-2.3\venv\lib\site-packages
Requires:
Required-by: imageio, onnx, onnxruntime-gpu, opencv-python, PyWavelets, scikit-image, scipy, tifffile, torchvision
可以看到,這里numpy庫就已經被安裝到了e:\work\Bert-vits2-2.3\venv\lib\site-packages目錄。
隨后,我們執行項目中的腳本就可以用虛擬環境來執行,如:
.\venv\Scripts\pip.exe webui.py
如果不想通過命令執行,也可以編寫bat腳本:
@echo off
chcp 65001
call venv\python.exe webui.py
@echo 啟動完畢,請按任意鍵關閉
call pause
至此我們就完成了Bert-vits2-2.3虛擬環境依賴的安裝,只需把Bert-vits2-2.3目錄壓縮,就拿到了一個Bert-vits2-2.3項目的整合包。
嵌入式embed和虛擬環境venv區別
嵌入式embed Python 通常用于將 Python 解釋器嵌入到其他應用程序中,以便在應用程序中執行 Python 代碼。這種方法常見于需要在應用程序中動態執行腳本或擴展功能的情況。例如,游戲開發中的腳本系統、自定義插件或擴展功能的實現,都可能會使用嵌入式 Python。嵌入式 Python 的優勢在于它的輕量級和靈活性,可以根據應用程序的需求進行定制,不需要包含完整的 Python 安裝。
虛擬環境venv則用于在同一臺計算機上管理多個 Python 項目的依賴關系。每個項目可以有自己獨立的虛擬環境,這樣可以避免不同項目之間的依賴沖突和版本問題。虛擬環境的應用場景包括:在開發多個項目時,每個項目可以有自己獨立的依賴包和 Python 版本;在部署應用程序時,可以確保部署環境與開發環境一致;在測試和維護項目時,可以隔離不同項目的依賴,方便管理和維護。
結語
嵌入式 Python 適用于需要將 Python 作為應用程序的一部分嵌入到其他系統中的場景,而虛擬環境適用于需要在同一臺計算機上管理多個 Python 項目的場景。兩者在項目開發中有著不同的應用目的和優勢,但在整合包制作領域,二者都可以完美實現項目整合包的制作和更新。
總結
以上是生活随笔為你收集整理的一键打包,随时运行,Python3项目虚拟环境一键整合包的制作(Venv)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Go 语言为什么很少使用数组?
- 下一篇: 动荡与改变 - 我的2023关键词