首页 > 编程语言 >一键打包,随时运行,Python3项目虚拟环境一键整合包的制作(Venv)

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

时间:2023-12-31 15:34:37浏览次数:37  
标签:Bert 虚拟环境 venv Python 一键 Venv 2.3 vits2

之前我们介绍了如何使用嵌入式 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 项目的场景。两者在项目开发中有着不同的应用目的和优势,但在整合包制作领域,二者都可以完美实现项目整合包的制作和更新。

标签:Bert,虚拟环境,venv,Python,一键,Venv,2.3,vits2
From: https://www.cnblogs.com/v3ucn/p/17937536

相关文章

  • Apipost一键压测参数化功能详解
    最近更新中Apipost对UI页面进行了一些调整,另外一键压测功能支持参数化!本篇文章将详细介绍这些改动!API调试页面的细节改动在请求区填入请求参数或脚本时会有相应的标识如在Query中填入多个参数时上方会展示数量在预、后执行脚本中写入脚本上方会有绿色小点标识一键压测参数化一键压......
  • Apipost一键压测参数化功能详解
    最近更新中Apipost对UI页面进行了一些调整,另外一键压测功能支持参数化!本篇文章将详细介绍这些改动!API调试页面的细节改动在请求区填入请求参数或脚本时会有相应的标识如在Query中填入多个参数时上方会展示数量在预、后执行脚本中写入脚本上方会有绿色小点标识 一键压测参......
  • 使用Pipenv进行Python虚拟环境管理--conda平替
    Pipenv使用教程Anaconda是一个开箱即用的Python开发环境,同时也包含虚拟环境管理工具conda。但是Anaconda的缺点包括:大型安装包:Anaconda的安装包相对较大,需要消耗较多的磁盘空间。依赖冲突:在使用Anaconda时,若安装包过多可能会出现依赖冲突的情况,需要手动解决。此时则......
  • flask vue 在 pycharm中 pycharm 每次新建一个新的项目(虚拟环境) 都需要重新安装vue.
    在PyCharm中使用Flask和Vue.js,你可以按照以下步骤进行:创建一个新的项目:打开PyCharm,创建一个新的项目或者打开一个已有的项目⁴。安装Flask:在PyCharm的设置(Settings)中,选择PythonInterpreter选项,点击+号按钮,搜索flask,并点击InstallPackage按钮⁴。安装Vue.js:在......
  • 虚拟环境打包EXE文件
    虚拟环境(pipenv)打包EXE1.安装模块pipinstallpipenv安装模块之后,在本机新建一个文件夹,将需要打包的py文件放置在该新建文件夹下,保证该文件夹下没有其他的文件,在该文件夹下打开命令终端后依次执行以下的命令。2.打包过程#1.创建虚拟环境pipenvinstall#2.进入虚拟环境......
  • 一键式自动给个人云服务搭建常用平台
    背景有时兴致来了就喜欢瞎鼓捣,几年前还是学生时买过学生优惠的云服务器,但没钱续费关停后就不了了之,近期看到有活动又重新入手了但问题就来了,之前好不容易搭建上去的各种服务,现在又得重新来一遍几年前还是学生时可能对这类环境搭建还比较感兴趣现在人老了,精力不够了,做啥都考虑......
  • 一键控制变色台灯的工作原理?
    一键控制变色台灯的工作原理?单片机控制下的灯泡组单片机是一种简单计算机输入:按键,按一下表示+1运算:门电路通过控制电子和位移来进行运算。+1,输出一种结果;再+1,又输出别一种结果;如此循环往复。十进制计算机和二进制计算机的原理一模一样,试想一下,按一下代表齿轮旋转一个置,......
  • 海康华为大华宇视等摄像头以及各种直播流地址(RTSP/RTMP/FLV/HLS等)通过LiveNVR转成标准
    @目录1、背景说明2、通道配置2.1、直播流地址配置2.2、配置RTSP接入2.3、配置Onvif接入2.4、配置SDK接入2.4.1、海康SDK接入2.4.2、大华SDK接入2.4.3、天地伟业SDK接入2.5、配置拉转视频文件2.6、海康ISUP接入2.6.1、海康ISUP接入配置2.6.2、海康设备接入2.6.2.1、海康EHOME接......
  • 魔搭+ 函数计算: 一键部署,缩短大模型选型到生产的距离
    引言面对魔搭ModelScope社区提供的海量模型,用户希望快速进行选型并生产使用起来,但在此之前,却一定会面临算力管理难、模型部署难等一系列问题,那么能否实现快速把选定的模型部署在云端功能强大的GPU上,由云端负责服务,扩展,保护和监控模型服务,同时免于运维和管理云上算力等基础设施......
  • 一键抠图1:Python实现人像抠图 (Portrait Matting)
    一键抠图1:Python实现人像抠图(PortraitMatting)目录一键抠图1:Python实现人像抠图(PortraitMatting)1.项目介绍2.抠图算法3.Matting数据集4.MODNet模型 (1)项目安装 (2)数据集说明 (3)MODNet模型5. Demo测试效果 6.源码下载(Python)7.人像抠图C++版本8.人像抠图And......