深度学习之虚拟环境的配置

        在学习过程中总是会接触到各种各样的项目,但是可能各个项目之间需要的环境不一样 ,每次都需要重新去配置相应的环境,这样会显得很麻烦啰嗦,这时候我们就可以借助到虚拟环境来解决这个问题。通过一番摸索,虚拟环境的配置一般可以有两个方向:


说在前面:

首先查看当前有几个虚拟环境(conda env list):


(1)借助第三方库

       通过安装virtualenv来安装新的虚拟环境,安装virtualenvwrapper来对虚拟环境进行管理。

###安装方法
pip install virtualenv
pip install virtualenvwrapper   ####linux下安装
pip install virtualenvwrapper-win   ###windows下安装

      利用virtualenv来创建新的虚拟环境,具体步骤如下:

  • 利用virtualenv test来创建虚拟环境所在目录
  • 激活虚拟环境,linux下 终端下输入source test/bin/activate即可,windows下运行test/Scripts/activate.bat即可。
  • virtualenv -p /usr/bin/python2.7 test    # -p参数指定Python解释器程序路径 ,直接pip安装所需要的包
  • 至于想要退出虚拟环境,linux下直接在终端下运行 . test/bin/deactivate,windows下运行test/Scripts/deactivate.bat即可。

采用上述这种方式来创建虚拟环境比较单一,当存在多个虚拟环境时,这种方式就比较麻烦。于是就可以采用virtualenvwrapper实现对虚拟环境管理,其使用操作如下:

  • 列出虚拟环境列表:workon
  • 新建虚拟环境:mkvirtualenv [虚拟环境名称]
  • 启动/切换虚拟环境:workon [虚拟环境名称]
  • 离开虚拟环境:deactivate

(2)借助conda

     anaconda是python里常用到的一个包安装管理工具,同时也可以利用它来对虚拟环境进行创建和管理。推荐使用这种方式来创建使用,具体操作如下

  • 创建虚拟环境 conda create -n python27 python=2.7 # python=2.7 指定python版本
  • 查看是否成功 conda env list
  • 激活虚拟环境conda activate python27(虚拟环境的名字)
  • 退出虚拟环境直接关闭终端,或conda deactivate python27或输入exit即可
  • 删除虚拟环境  conda env remove -n python27即可
  • 对虚拟环境包进行操作
###未进入该环境
conda list -n your_env_name
conda install --name python27 package_name 
conda remove --name python27 package_name


###进入该环境
conda activate python27
pip install xxx
  • conda安装包加速
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

参考链接:Anaconda-- conda 创建、激活、退出、删除虚拟环境anaconda conda 切换为国内源

(3)利用python3实现虚拟环境开发

由于python3开始集成了virtualenv,于是可以直接借助python3来实现开发环境分割隔离。创建虚拟环境的步骤也很简单,按照以下命令即可

python -m venv xxxx  ###生成一个简易的与原python相同的环境

这样会在当前路径下生成一个xxx文件夹,里面包括lib、script等文件夹,接下来启动该虚拟环境

source xxx  ###Linux下启动xxx环境
deactivate xxx  ###linux下退出环境

#####windows下
cd xxx/Scripts
activate   ####windows下启动环境
deactivate  ###windows下退出环境

(4)uv管理

uv 通过 uv venv 来管理虚拟环境,类似于 virtualenvvenv,但更快、更轻量。以下是基本使用方法:

1. 创建虚拟环境

uv venv myenv

这个命令会在当前目录下创建 myenv 目录作为虚拟环境。


uv 没有像 conda env list 这样的命令来直接列出所有虚拟环境,但可以用以下方法手动查看:

方法 1:检查 UV_VIRTUALENVS 目录

uv 默认将虚拟环境存储在 ~/.uv/venvs 目录(Linux/macOS)或 %USERPROFILE%\.uv\venvs 目录(Windows)。你可以运行以下命令查看:

  • Linux/macOS:

    ls ~/.uv/venvs
    
  • Windows (PowerShell):

    Get-ChildItem $env:USERPROFILE\.uv\venvs
    

方法 2:查找当前目录下的虚拟环境

如果你在项目中使用 uv venv 创建虚拟环境,它通常会存放在当前目录下。例如:

ls -d */ | grep "venv"

或者在 Windows 上:

Get-ChildItem -Directory | Where-Object { $_.Name -match "venv" }

目前 uv 还没有直接管理多个环境的功能,建议手动记录已创建的虚拟环境路径。


2. 激活虚拟环境

  • Linux/macOS

    source myenv/bin/activate
    
  • Windows (PowerShell)

    myenv\Scripts\Activate.ps1
    

3. 安装依赖

uv 作为 pip 的替代品,可以直接安装包:

uv pip install numpy pandas

或者直接使用 uv 安装:

uv install numpy pandas

4. 退出虚拟环境

deactivate

5. 删除虚拟环境

rm -rf myenv

相比 venvuv 速度更快,适合日常开发使用。

(5)环境迁移

有时候需要在另一台机器上部署同样的服务,这时候需要配置一样的环境(这时候就体现了docker的优越性)。这是可以借助conda的clone功能实现,

##先对原来机器上的虚拟环境进行打包,一般在的路径为anaconda/envs/xxx
##将上面打包的环境拷贝到新的机器上
conda create -n new_xxx --clone xxx

写在后面:

        环境管理工具在 Python 生态系统中主要用于管理依赖项和隔离环境。以下是 uv, condavirtualenv 的对比:

特性uvcondavirtualenv
主要用途依赖管理+环境管理依赖管理+环境管理仅环境管理
安装方式pip install uv需安装 Anaconda/Minicondapip install virtualenv
环境隔离✅ 是✅ 是✅ 是
依赖管理✅ 内置 pip 替代品✅ 支持 conda 包管理❌ 依赖 pip
包管理速度🚀 非常快🐢 较慢🐢 较慢
占用空间🚀 小 (基于 uv-cache)🐘 大(带完整 Python 运行环境)📦 中等
Python 版本依赖系统 Python依赖 conda 版本的 Python依赖系统 Python
跨语言支持❌ 仅 Python✅ 可管理 R, Julia, C 等❌ 仅 Python
兼容性✅ 兼容 pipvenv⚠️ 需要 conda 生态✅ 兼容 pipvenv

适用场景:

  • uv:如果你需要一个快速的 Python 依赖管理工具,并且习惯 pip 的工作方式,uv 是一个优秀的替代方案。

  • conda:适用于科学计算(如 NumPy、TensorFlow),尤其是在不同 Python 版本或**非 Python 依赖(如 C 库)**的情况下。

  • virtualenv:适用于轻量级 Python 环境隔离,适合日常 Python 项目开发,特别是和 pip 结合使用。

       在安装虚拟环境下,安装项目需要的包时,如在python27下安装numpy时会出现“RuntimeError: Python version >= 3.5 required.”错误,这是由于现在python官方放弃了python2的维护,直接用pip install numpy安装就会出错,直接通过conda install numpy来完成安装。

       当我们在虚拟环境下完成一个项目的开发后,假如我们想要移植该项目,此时常见的,我们需要将该项目导入的所有库全部写入到requirements.txt文件中,我们只需要一个命令即可完成,在该环境下,直接pip freeze > requirements.txt就会在当前路径下生成想要的所有库文件了

在新的环境下直接pip install -r requirements.txt即可实现所有文件的安装。


参考博客:

Python虚拟环境配置的两种方法_fcy8023的博客-优快云博客_python 虚拟环境配置(Python虚拟环境配置的两种方法)

python-虚拟环境的创建和管理的三种方式_deapou的博客-优快云博客(python-虚拟环境的创建和管理的三种方式)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaomu_347

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值