macOS-python项目虚拟环境管理 众所周知python版本比较多为了避免的不同版本项目开发存在冲突在虚拟环境中进行项目开发可以避免因为python版本不同带来的冲突本文主要对python项目开发几种虚拟环境进行整理汇总。一、venv 创建虚拟环境命令格式python3 -m venv /path/to/new/virtual/environment其中/path/to/new/virtual/environment是虚拟环境的完整路径最后的environment是环境名称。说明venv是 Python 自带的虚拟环境创建工具无需安装直接可以用使用上述命令创建的虚拟环境其 Python 解释器版本与当前系统中生效的 Python 版本一致。例如当前终端执行 python --version 显示的 Python 版本为 3.13.13则虚拟环境中的python解释器版本也是 3.13.13。创建虚拟环境后在 IDE如 PyCharm、VSCode中创建新项目时可以通过“自定义”或“选择已有解释器”的方式指定使用该虚拟环境中的 Python 解释器。二、conda 创建虚拟环境Conda 是一个开源的包管理和环境管理系统支持 Python、Java等多种语言。它不仅可以管理 Python 包还可以管理非 Python 的依赖项是数据科学和机器学习领域的常用工具。本文不对conda工具的安装进说明。1. Conda 环境管理命令1.1 创建虚拟环境创建指定 Python 版本的环境conda create --name myenv python3.9创建环境并指定包conda create --name myenv python3.9 numpy pandas matplotlib1.2 激活与停用环境激活环境conda activate myenv停用环境conda deactivate1.3 查看环境列表#第一种方式 conda env list #第二种方式 conda info --envs列表中带 * 标识的是当前生效的环境1.4 管理环境中的包安装包conda install numpy pandas #指定版本 conda install numpy1.24.3 #更新包 conda update numpy更新包conda update numpy更新所有包conda update --all卸载包conda remove numpy1.5 导出与复制环境导出环境配置conda env export environment.yml复制环境conda create --name newenv --clone oldenv1.6 删除环境conda env remove --name myenv2. Conda 与 venv 的主要区别2.1 包管理能力Conda不仅管理 Python 包还能管理非 Python 依赖如 C/C 库、系统工具等。通过 conda-forge 等渠道提供预编译的二进制包解决依赖冲突能力更强。venv仅管理 Python 包依赖 pip 进行包安装无法处理非 Python 依赖。2.2 跨语言支持Conda原生支持多语言环境管理可以为 R、Java、C 等项目创建独立环境。venv仅针对 Python 环境不支持其他语言。2.3 Python 版本管理Conda可以在创建环境时指定任意可用的 Python 版本不依赖系统已安装的 Python。venv创建的虚拟环境 Python 版本与当前系统激活的 Python 版本一致无法创建不同 Python 版本的环境。2.4 环境隔离程度Conda环境完全独立包括 Python 解释器、标准库和所有依赖包。venv共享系统 Python 解释器和标准库只隔离第三方包。2.5 使用场景Conda适合数据科学、机器学习项目需要复杂依赖如 CUDA、MKL 等或跨语言开发。venv适合纯 Python Web 开发、脚本编写等简单项目轻量级且无需额外安装。2.6 性能与存储Conda环境占用空间较大因为包含完整的 Python 解释器和依赖。venv环境更轻量创建速度快占用空间小。三、Virtualenv 管理虚拟环境Virtualenv 是一个独立的 Python 虚拟环境创建工具比 venv 更早出现支持 Python 2 和 Python 3。它提供了比 venv 更灵活的配置选项是许多老项目和跨版本项目的常用选择。1. 工具安装Virtualenv 需要通过 pip 安装pip install virtualenv如果系统中有多个 Python 版本可以使用特定版本的 pip 安装pip3 install virtualenv # 或 python3 -m pip install virtualenv2. 创建虚拟环境创建虚拟环境的基本命令格式如下virtualenv env_name其中env_name是环境名称会在当前目录下创建一个名为env_name的文件夹。常用选项指定 Python 解释器版本virtualenv -p /usr/bin/python3.8 env_name不安装 pipvirtualenv --no-pip env_name不安装 setuptoolsvirtualenv --no-setuptools env_name继承系统包virtualenv --system-site-packages env_name3. 激活环境激活 Virtualenv 环境需要执行环境目录下的激活脚本# 进入创建环境所在目录 cd env_name #执行激活脚本Linux/macOS source bin/activate #Windows 系统 env_name\Scripts\activate激活成功后命令行提示符前会显示环境名称(env_name)。4. 退出环境退出当前虚拟环境非常简单deactivate执行后即可返回到系统默认的 Python 环境。5. Virtualenv 与 venv、conda 的对比5.1 与 venv 的对比兼容性Virtualenv 支持 Python 2 和 Python 3而 venv 仅支持 Python 3.3灵活性Virtualenv 提供更多配置选项如不安装 pip、继承系统包等安装方式Virtualenv 需要额外安装venv 是 Python 标准库的一部分性能两者在创建速度和资源占用上相差不大5.2 与 conda 的对比包管理Virtualenv 依赖 pip 管理 Python 包conda 可以管理 Python 和非 Python 依赖Python 版本管理Virtualenv 需要系统已安装对应 Python 版本conda 可以独立管理 Python 版本跨语言支持Virtualenv 仅支持 Pythonconda 支持多语言环境使用场景Virtualenv 适合传统 Python 项目conda 适合数据科学和机器学习项目6. 使用建议对于 Python 3.3 的新项目优先使用 venv无需安装如果需要支持 Python 2 或需要更灵活的配置选择 Virtualenv对于数据科学、机器学习或需要复杂依赖的项目推荐使用 conda团队协作时建议统一虚拟环境工具避免环境不一致问题总结Conda 功能更强大适合复杂项目和跨语言开发venv 更轻量简单适合纯 Python 基础项目。选择哪种工具取决于项目需求和个人偏好。ps感谢阅读✍️本文为原创实战总结文中方案均经过本地测试验证。 码字不易内容有帮助可以随手支持金额随意不打赏也完全不影响正常阅读知识分享始终开放。

相关新闻

最新新闻

Java Arrays.sort() 排序全解析:从升序降序到自定义对象排序

Java Arrays.sort() 排序全解析:从升序降序到自定义对象排序

1. 项目概述:不只是排序,更是理解Java集合的基石 如果你写过Java,那 Arrays.sort() 这个方法你肯定不陌生。表面上看,它就是个给数组排序的工具,升序降序似乎一目了然。但在我十多年的开发生涯里,见过太多…

2026/8/15 11:37:42
Windows系统文件sxproxy.dll丢失找不到问题解决

Windows系统文件sxproxy.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/15 11:37:42
Windows系统文件swprv.dll丢失找不到问题解决

Windows系统文件swprv.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/15 11:37:42
Windows系统文件SwitcherDataModel.dll丢失找不到问题解决

Windows系统文件SwitcherDataModel.dll丢失找不到问题解决

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

2026/8/15 11:37:42
RDMA 从入门到落地(二)

RDMA 从入门到落地(二)

第 5 章:载波选择——为什么已有数据同步用 RDMA进入项目实战。先讲一个总前提:kvstore 的主从同步分两条线,RDMA 只负责"已有数据同步"(全量)这一段——把主库整份快照文件同步给从库。而"新增数据同步…

2026/8/15 11:37:42
从HBM4与Rubin展望到实战:AI开发者如何应对显存挑战与优化部署

从HBM4与Rubin展望到实战:AI开发者如何应对显存挑战与优化部署

最近在AI和图形计算领域,关于显存容量和带宽的讨论热度不减。无论是想本地部署大模型的开发者,还是追求极致游戏体验的玩家,都深刻体会到显存(Video RAM)的重要性。特别是随着大语言模型(LLM)和…

2026/8/15 11:32:41