日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

一键打包,随时运行,Python3项目虚拟环境一键整合包的制作(Venv)

發布時間:2024/1/2 python 61 coder
生活随笔 收集整理的這篇文章主要介紹了 一键打包,随时运行,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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。