
在 Python 开发中使用虚拟环境Virtual Environment能够有效管理不同项目的依赖关系避免软件包版本冲突。Python 提供了原生虚拟环境venv和Anaconda 虚拟环境conda两种主要的虚拟环境管理方式。本指南将介绍如何在 Windows 和 macOS/Linux 上创建和管理 Python 虚拟环境包括虚拟环境的创建、激活、依赖安装、环境变量配置以及自定义虚拟环境的存储位置等帮助开发者高效地管理 Python 项目环境。文章目录Python 虚拟环境Python 原生虚拟环境Anaconda 虚拟环境虚拟环境变量配置虚拟环境保存位置总结Python 虚拟环境Python 原生虚拟环境和 Anaconda 虚拟环境都可以用于隔离项目依赖避免包冲突但两者在使用方式、管理工具和适用场景上存在区别。原生环境使用venv模块创建操作简单适合轻量项目或不依赖 Anaconda 包管理的场景而 Anaconda 提供更强大的环境和依赖管理功能更适合数据科学和科研场景。两者都支持指定 Python 版本、安装依赖包并提供相应的激活与退出机制命令略有不同。特性Python 原生虚拟环境Anaconda 虚拟环境创建工具venv模块conda命令Python 版本要求Python ≥ 3.3安装 Anaconda 或 Miniconda 后自动包含 Python创建命令python -m venv my_project_venvconda create --name my_project_venv python3.8激活命令Windowsmy_project_venv\Scripts\activateconda activate my_project_venv激活命令Unixsource my_project_venv/bin/activateconda activate my_project_venv安装依赖pip install 包名通常使用pip install 包名也可用conda install退出环境deactivatedeactivate管理工具优势简单轻量原生支持强大依赖解析支持镜像源、自定义通道、包版本控制等推荐使用场景普通开发项目、小型工具脚本科学计算、数据分析、需要复杂依赖的项目Python 原生虚拟环境Python原生虚拟环境是通过venv模块实现的。需要确保Python版本是3.3及以上将通过以下步骤创建并使用虚拟环境创建虚拟环境使用执行命令python -m venv my_project_venv python3.8将在当前目录下创建一个名为my_project_venv的虚拟环境其python的版本为3.8。python-mvenv my_project_venvpython3.8对于Windows用户执行命令my_project_venv\Scripts\activate激活虚拟环境my_project_venv\Scripts\activate对于macOS和Linux用户激活虚拟环境执行命令source my_project_venv/bin/activate看到命令提示符前面有虚拟环境的名称表示虚拟环境已经激活。sourcemy_project_venv/bin/activate虚拟环境安装依赖库和普通安装一样比如安装numpy执行命令pip install numpy。pipinstallnumpy执行命令deactivate退出虚拟环境。deactivateAnaconda 虚拟环境Anaconda是一个用于科学计算的Python发行版提供了自己的虚拟环境管理工具conda。创建虚拟环境执行命令conda create --name my_project_venv python3.8将在当前目录下创建一个名为my_project_venv的虚拟环境其python的版本为3.8。conda create--namemy_project_venvpython3.8激活虚拟环境执行命令conda activate my_project_venv看到命令提示符前面有虚拟环境的名称表示虚拟环境已经激活。conda activate my_project_venv虚拟环境安装依赖库和普通安装一样比如安装numpy执行命令pip install numpy。pipinstallnumpy执行命令deactivate退出虚拟环境。deactivate虚拟环境变量配置在使用虚拟环境时如果需要每次激活时自动设置环境变量或执行初始化脚本可以直接修改虚拟环境的激活脚本。Python 原生虚拟环境根据操作系统不同修改的脚本路径也不同Windows 修改Scripts\activate.batmacOS 和 Linux 修改bin/activate。而在 Anaconda 虚拟环境中不区分操作系统统一修改conda-meta/user-scripts.py文件。无论哪种方式在这些脚本中添加设定语句即可实现自动配置。虚拟环境类型操作系统修改的脚本路径用途说明Python 原生虚拟环境Windowsmy_project_venv\Scripts\activate.bat添加环境变量或运行脚本Python 原生虚拟环境macOS/Linuxmy_project_venv/bin/activate添加环境变量或运行脚本Anaconda 虚拟环境所有系统my_project_venv/conda-meta/user-scripts.py添加环境变量或运行脚本exportMY_ENV_VARmy_value同样也可以在激活脚本中运行一些初始化脚本。例如在Linux或macOS系统中可以添加以下内容来运行一个名为my_init_script.sh的初始化脚本。sourcemy_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控制是否显示下载软件包时的通道 URLauto_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 生态环境避免因依赖冲突而影响开发进程。