在 Python 开发中,使用虚拟环境(Virtual Environment)能够有效管理不同项目的依赖关系,避免软件包版本冲突。Python 提供了 原生虚拟环境(venv)Anaconda 虚拟环境(conda) 两种主要的虚拟环境管理方式。

本指南将介绍如何在 Windows 和 macOS/Linux 上创建和管理 Python 虚拟环境,包括虚拟环境的创建、激活、依赖安装、环境变量配置以及自定义虚拟环境的存储位置等,帮助开发者高效地管理 Python 项目环境。

Python 虚拟环境

Python 原生虚拟环境和 Anaconda 虚拟环境都可以用于隔离项目依赖,避免包冲突,但两者在使用方式、管理工具和适用场景上存在区别。原生环境使用 venv 模块创建,操作简单,适合轻量项目或不依赖 Anaconda 包管理的场景;而 Anaconda 提供更强大的环境和依赖管理功能,更适合数据科学和科研场景。两者都支持指定 Python 版本、安装依赖包,并提供相应的激活与退出机制,命令略有不同。

特性 Python 原生虚拟环境 Anaconda 虚拟环境
创建工具 venv 模块 conda 命令
Python 版本要求 Python ≥ 3.3 安装 Anaconda 或 Miniconda 后自动包含 Python
创建命令 python -m venv my_project_venv conda create --name my_project_venv python=3.8
激活命令(Windows) my_project_venv\Scripts\activate conda activate my_project_venv
激活命令(Unix) source my_project_venv/bin/activate conda activate my_project_venv
安装依赖 pip install 包名 通常使用 pip install 包名,也可用 conda install
退出环境 deactivate deactivate
管理工具优势 简单轻量,原生支持 强大依赖解析,支持镜像源、自定义通道、包版本控制等
推荐使用场景 普通开发项目、小型工具脚本 科学计算、数据分析、需要复杂依赖的项目

Python 原生虚拟环境

Python原生虚拟环境是通过venv模块实现的。需要确保Python版本是3.3及以上,将通过以下步骤创建并使用虚拟环境:

创建虚拟环境,使用执行命令python -m venv my_project_venv python=3.8将在当前目录下创建一个名为my_project_venv的虚拟环境,其python的版本为3.8。

python -m venv my_project_venv python=3.8

对于Windows用户,执行命令my_project_venv\Scripts\activate激活虚拟环境

my_project_venv\Scripts\activate

对于macOS和Linux用户,激活虚拟环境,执行命令source my_project_venv/bin/activate,看到命令提示符前面有虚拟环境的名称,表示虚拟环境已经激活。

source my_project_venv/bin/activate

虚拟环境安装依赖库,和普通安装一样,比如安装numpy,执行命令pip install numpy

pip install numpy

执行命令deactivate,退出虚拟环境。

deactivate

Anaconda 虚拟环境

Anaconda是一个用于科学计算的Python发行版,提供了自己的虚拟环境管理工具conda。

创建虚拟环境,执行命令conda create --name my_project_venv python=3.8将在当前目录下创建一个名为my_project_venv的虚拟环境,其python的版本为3.8。

conda create --name my_project_venv python=3.8

激活虚拟环境,执行命令conda activate my_project_venv,看到命令提示符前面有虚拟环境的名称,表示虚拟环境已经激活。

conda activate my_project_venv

虚拟环境安装依赖库,和普通安装一样,比如安装numpy,执行命令pip install numpy

pip install numpy

执行命令deactivate,退出虚拟环境。

deactivate

虚拟环境变量配置

在使用虚拟环境时,如果需要每次激活时自动设置环境变量或执行初始化脚本,可以直接修改虚拟环境的激活脚本。Python 原生虚拟环境根据操作系统不同,修改的脚本路径也不同:Windows 修改 Scripts\activate.bat,macOS 和 Linux 修改 bin/activate。而在 Anaconda 虚拟环境中,不区分操作系统,统一修改 conda-meta/user-scripts.py 文件。无论哪种方式,在这些脚本中添加设定语句即可实现自动配置。

虚拟环境类型 操作系统 修改的脚本路径 用途说明
Python 原生虚拟环境 Windows my_project_venv\Scripts\activate.bat 添加环境变量或运行脚本
Python 原生虚拟环境 macOS/Linux my_project_venv/bin/activate 添加环境变量或运行脚本
Anaconda 虚拟环境 所有系统 my_project_venv/conda-meta/user-scripts.py 添加环境变量或运行脚本
export MY_ENV_VAR=my_value

同样也可以在激活脚本中运行一些初始化脚本。例如在Linux或macOS系统中,可以添加以下内容来运行一个名为my_init_script.sh的初始化脚本。

source my_init_script.sh

在Windows系统中,你可以使用call命令激活虚拟环境。

call my_init_script.bat

通过以上方法可以方便地为虚拟环境配置环境变量和初始化脚本。这在某些需要特定设置的项目中会非常有用。

虚拟环境保存位置

在需要修改 Python 虚拟环境默认保存位置的情况下,可以通过编辑用户目录下的 .condarc 配置文件来实现。这个文件通常位于 C 盘的用户文件夹中,使用 Notepad++ 等编辑器打开后,将相关配置项添加进去即可。通过设置 envs_dirs 可以自定义虚拟环境的存储路径,其他配置项则用于控制下载行为、通道信息显示以及基础环境激活策略等,有助于更灵活地管理 Anaconda 或 Miniconda 的行为。

配置项 作用说明
envs_dirs 指定虚拟环境的创建和存储目录
ssl_verify 控制是否验证 HTTPS 协议下载的软件包的 SSL 证书
show_channel_urls 控制是否显示下载软件包时的通道 URL
auto_activate_base 设置是否在新终端会话中自动激活 base 环境
channels 指定默认使用的软件包通道
custom_channels 指定自定义软件包通道
default_channels 指定默认使用的软件包通道(可用于覆盖 channels 设置或作为补充)

通过在 .condarc 文件中添加这段配置,可以将 Conda 虚拟环境的默认创建位置改为 F:\PythonWorkProject\MyEnvsProject,并同步设置多个常用项,包括是否自动激活 base 环境、是否验证 SSL、是否显示通道 URL,以及配置默认通道和自定义通道。这样可以提升虚拟环境管理的效率,避免默认存储路径在用户目录下杂乱无序,同时通过使用国内镜像源显著加快包的下载速度。

auto_activate_base: false
channels:
  - defaults
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
show_channel_urls: True
ssl_verify: true
envs_dirs:
  - F:\PythonWorkProject\MyEnvsProject

总结

通过本指南,用户可以掌握 Python 原生虚拟环境(venv)Anaconda 虚拟环境(conda) 的使用方法,包括创建、激活、安装依赖、退出虚拟环境以及环境变量配置。同时,介绍了如何修改虚拟环境的默认存储位置,以便于管理多个项目。

无论是数据科学、机器学习,还是 Web 开发,正确管理 Python 虚拟环境可以有效提升开发效率,确保项目的稳定性。希望本指南能够帮助开发者更好地管理 Python 生态环境,避免因依赖冲突而影响开发进程。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐