Windows 系统上高效的 Python 版本管理方案:Anaconda 与 virtualenv 的结合

『技术文档』写作方法征文挑战赛 10w+人浏览 166人参与

#工作记录

在 Windows 系统下管理多个 Python 版本一直是个挑战。

Anaconda 和 virtualenv 的结合使用,可以高效地管理不同版本的 Python,确保每个项目都能在独立且适宜的环境中运行。

本文将详细介绍如何利用 Anaconda 管理基础 Python 版本,以及如何通过 virtualenv 为每个项目创建隔离的虚拟环境。

通过这种方式,我们可以在系统层面保持 Python 环境的整洁,同时为每个项目提供定制化的深度隔离运行环境。

Windows 11 下 Python 版本管理的 “三剑客” 协同秘籍:Anaconda、Virtualenv 与 Pipenv 的最佳协同实践_windows python版本管理工具-CSDN博客

WIN电脑上的Python版本管理记录——Anaconda与Virtualenv的协同使用_windows 让pyenv 识别已安装的anaconda python-CSDN博客

Conda 命令大全:分类详解与使用指南(附完整命令列表)-CSDN博客

【笔记】为 Miniconda 安装图形界面的方法_miniconda navigator-CSDN博客

……

更多环境管理与运维技巧请翻看往期文章! 

一、Anaconda:统一管理基础 Python 版本

(一)安装 Anaconda

访问 Anaconda 官方网站,下载适合 Windows 系统的安装程序并按照安装向导完成安装。Anaconda 提供了一个功能强大的 Python 分发版本,集成了大量的科学计算和数据分析库。

 

(二)创建不同 Python 版本的基础环境

使用命令行创建环境

打开 Anaconda Prompt,使用以下命令创建不同版本的 Python 基础环境(按需设置):

conda create -n python36 python=3.6
conda create -n python37 python=3.7
conda create -n python38 python=3.8
conda create -n python39 python=3.9
conda create -n python310 python=3.10
conda create -n python311 python=3.11
conda create -n python312 python=3.12
conda create -n python313 python=3.13

这些命令分别创建了 Python 3.6 到 Python 3.13 的基础环境,每个环境都有一个指定的名称,如 python36python37 等。

使用 Anaconda Navigator 图形界面创建环境
  1. 打开 Anaconda Navigator。

  2. 在界面中选择 Environments 选项卡。

  3. 点击 Create 按钮。

  4. 在弹出的窗口中,指定环境名称和 Python 版本。例如,创建一个名为 python310 的环境,并选择 Python 3.10 作为基础版本。

  5. 勾选 Include R 选项,以便同时安装 R 语言支持(可选)。

  6. 点击 Create 完成环境创建。

(三)记录每个虚拟环境的详细信息

创建好基础环境后,记录每个环境的 Python.exe 路径(备用)。

例如:

环境名Python 版本Python.exe 路径
python36Python 3.6D:\ProgramData\anaconda3\envs\python36\python.exe
python37Python 3.7D:\ProgramData\anaconda3\envs\python37\python.exe
python38Python 3.8D:\ProgramData\anaconda3\envs\python38\python.exe
python39Python 3.9D:\ProgramData\anaconda3\envs\python39\python.exe
python310Python 3.10D:\ProgramData\anaconda3\envs\python310\python.exe
python311Python 3.11D:\ProgramData\anaconda3\envs\python311\python.exe
python312Python 3.12D:\ProgramData\anaconda3\envs\python312\python.exe
python313Python 3.13D:\ProgramData\anaconda3\envs\python313\python.exe

二、virtualenv:项目级别的环境隔离

(一)安装 virtualenv

在系统全局 Python 环境或其他合适环境中,运行以下命令安装 virtualenv:

pip install virtualenv

(二)为每个项目创建独立的 virtualenv 环境

假设你的项目位于 D:\Projects\my_project 目录下,并且你希望使用 Anaconda 中创建的 Python 3.10 基础环境来为该项目创建虚拟环境。可以按照以下步骤操作:

  1. 打开命令提示符(CMD),切换到项目目录:

cd D:\Projects\my_project
  1. 使用 Anaconda 基础环境中的 python.exe 路径来创建 virtualenv 虚拟环境:

例如项目需求python3.10版本,则可:

"D:\ProgramData\anaconda3\envs\python310\python.exe" -m virtualenv venv

这里,venv 是创建的虚拟环境的名称,可以根据你的项目需求自定义。

(三)激活项目虚拟环境

创建完成后,进入项目目录下的虚拟环境目录并激活:

cd D:\Projects\my_project
.\venv\Scripts\activate

激活后,命令提示符前会显示虚拟环境的名称,表示你已经进入该虚拟环境。此时,你可以在该环境中安装项目所需的 Python 包,而不会影响其他项目或系统全局环境。

三、在 PyCharm 中配置虚拟环境

PyCharm 是一款功能强大的 Python 开发工具,它与 Anaconda 和 virtualenv 配合使用时,可以提供更加便捷的开发体验。

(一)克隆项目并自动创建虚拟环境

  1. 在 PyCharm 中,点击 Git -> Clone,输入项目的 GitHub 仓库地址并克隆项目到本地。

  2. 克隆完成后,PyCharm 会自动检测项目目录下的 requirements.txt 文件(如果存在)。点击界面中的提示,选择 使用 requirements.txt 创建虚拟环境

  3. 在弹出的创建虚拟环境窗口中,点击右侧的 ... 按钮,选择 Anaconda 基础环境中的 Python.exe 路径(例如,D:\ProgramData\anaconda3\envs\python310\python.exe)作为基础解释器。

  4. 设置好基础解释器后,PyCharm 会自动完成虚拟环境的创建,并将项目所需的依赖包安装到该环境中。

(二)手动创建虚拟环境

配置 virtualenv 环境 |PyCharm 文档

  1. 打开 PyCharm 并进入项目窗口。

  2. 点击右下角的 Add Python Interpreter(添加 Python 解释器)选项,选择 Existing environment(现有环境)。

  3. 在弹出的窗口中,点击右侧的 ... 按钮,浏览并选择 Anaconda 基础环境中的 Python.exe 文件路径。

  4. 选择好解释器后,PyCharm 会将其添加为项目的 Python 解释器,你可以在此基础上进一步创建和管理虚拟环境。

(三)继承基础 Python 解释器的包

在 PyCharm 中创建虚拟环境时,可以选择继承基础 Python 解释器的包,这样可以确保虚拟环境中有基础但完善的依赖支持:

  1. 在创建虚拟环境的窗口中,勾选 Inherit from 选项,并选择相应的基础 Python 解释器。

  2. 这样创建的虚拟环境会自动包含基础环境中已安装的包,方便快速开始项目开发。

四、虚拟环境的多级隔离和管理流程图

下面是一个展示如何使用 Anaconda 和 virtualenv 进行虚拟环境多级隔离和管理的流程图:

五、针对特定开源项目的环境配置方案

在实际开发中,我们可能会遇到一些开源项目,它们对运行环境有特定的要求,必须在 conda 环境中安装和运行。针对这类项目,可以采用以下两种方案来实现部署和开发:

方案一:新建项目的 conda 虚拟环境并使用

  • 打开 Anaconda Prompt。

  • 创建一个新的 conda 虚拟环境,并指定 Python 版本(根据项目要求选择合适的版本):

conda create -n 项目环境名称 python=指定版本号
  • 激活该虚拟环境:

conda activate 项目环境名称
  • 根据项目的依赖要求,在激活的虚拟环境中使用 pip 或 conda 安装所需的包。例如,使用 pip 安装:

pip install -r requirements.txt

或使用 conda 安装:

conda install 包名称
  • 在 PyCharm 中配置该 conda 虚拟环境作为项目的解释器:

    • 打开 PyCharm,进入项目设置(File -> Settings)。

    • 在项目设置中找到 Project Interpreter 选项。

    • 点击右侧的齿轮图标,选择 Add

    • 在弹出的窗口中选择 Existing environment,然后浏览并选择刚才创建的 conda 虚拟环境中的 python.exe 路径(一般在 Anaconda 安装目录下的 envs 文件夹中,例如 D:\ProgramData\anaconda3\envs\项目环境名称\python.exe)。

    • 点击 OK 完成配置。

方案二:使用 conda 嵌套 virtualenv 或 virtualenv 嵌套 conda

怎么使用嵌套虚拟环境实现项目部署之virtualenv嵌套conda绕开安装环境检测实现.venv部署facefusion_conda 实现venv功能-CSDN博客

conda 嵌套 virtualenv
  1. 首先,激活一个与项目需求相同python版本的 conda 虚拟环境。

  2. 在激活的 conda 环境中,再激活一个 virtualenv 虚拟环境。

  3. 这样做的目的和场景是:绕过某些开源项目比如facefusion部署时的强制conda环境检测。

  4. conda 嵌套 virtualenv 的举例如下:

virtualenv 嵌套 conda
  1. 先使用 virtualenv 创建一个虚拟环境,并激活该环境。

  2. 在激活的 virtualenv 环境中,再激活一个相同python版本的conda虚拟环境。

  3. 这样做的目的和场景是:绕过某些开源项目部署时的环境检测并灵活处理软件包。

  4. virtualenv 嵌套 conda 的实现举例如下:

嵌套虚拟环境的使用限制和实现限制

嵌套虚拟环境(如 conda 嵌套 virtualenv 或 virtualenv 嵌套 conda)是一种特殊场景下的解决方案,主要用于满足某些开源项目对环境隔离的特殊要求。然而,这种方式存在以下使用限制和实现限制:

  • 兼容性问题 :不同版本的 Python、virtualenv 和 conda 之间可能存在兼容性问题。例如,较新的 virtualenv 版本可能对旧版本的 Python 或 conda 支持不佳,导致环境创建失败或功能异常。

  • 路径配置复杂 :嵌套虚拟环境需要正确配置环境变量和路径,否则可能会出现命令找不到或包导入错误等问题。在 Windows 系统中,路径配置的复杂性可能会增加出错的风险。

  • 终端和命令行工具的差异 :不同的终端(如 CMD、PowerShell、Windows Terminal 等)对环境变量的处理和命令的支持有所不同。某些命令或操作在特定终端下可能无法正常执行,例如在某些版本的 PowerShell 中,激活嵌套虚拟环境的命令可能需要特殊配置或权限才能成功运行。

  • 权限限制 :在某些系统环境下,创建或激活嵌套虚拟环境可能需要管理员权限。如果用户没有足够的权限,可能会导致操作失败。

  • 环境隔离性不足 :尽管嵌套虚拟环境旨在提供更精细的隔离,但在某些情况下,环境之间的隔离可能并不完全。例如,某些系统级的环境变量或配置可能会渗透到嵌套环境中,导致意外的依赖冲突或行为异常。

  • 工具支持有限 :并非所有开发工具和 IDE 都能很好地支持嵌套虚拟环境的配置和管理。这可能会给开发者带来额外的配置和调试工作,影响开发效率。

由于上述限制,嵌套虚拟环境的方式并不适合所有场景,通常只在有特殊需求且经过充分测试和验证的情况下才考虑使用。在常规开发中,建议优先使用单独的 conda 环境或 virtualenv 环境来满足项目需求。

六、总结

通过结合使用 Anaconda 和 virtualenv,我们可以在 Windows 系统上高效地管理不同版本的 Python。Anaconda 用于统一管理基础 Python 版本,virtualenv 用于创建项目级别的隔离环境。这种组合方案既避免了系统环境的混乱,又确保了项目的独立性和稳定性。希望本文的介绍能够帮助你在 Windows 系统下更好地管理 Python 环境,提高开发效率。

如果你在实践中遇到任何问题,欢迎随时交流和讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AITechLab

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

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

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

打赏作者

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

抵扣说明:

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

余额充值