python创建虚拟环境的3种方式

 更新时间:2026年02月03日 10:18:12   作者:import_random  
在Python开发中,主要有三种创建虚拟环境的方式,包括conda、pyenv+pyenv-virtualenv和venv,它们各有特点和适用场景,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

在 Python 开发中,主要有三种创建虚拟环境的方式,它们各有特点和适用场景。下面为你详细介绍每种方式:

1.conda

Conda 是一个跨平台的包管理器和环境管理器,由 Anaconda 发行版引入。

特点:

  • 不仅仅是 Python:可以管理其他语言和工具的依赖
  • 预编译包:许多科学计算包有预编译版本,安装速度快
  • 环境隔离彻底:包括系统库级别的隔离

安装:

# 安装 Miniconda(轻量版)或 Anaconda(完整版)
# 下载地址:https://docs.conda.io/en/latest/miniconda.html

使用方法:

# 创建环境(默认使用 conda 源)
conda create -n myenv python=3.9

# 创建环境并指定包
conda create -n myenv python=3.9 numpy pandas

# 激活环境
conda activate myenv        # Windows/Linux/macOS

# 退出环境
conda deactivate

# 列出所有环境
conda env list

# 删除环境
conda remove -n myenv --all

# 导出环境配置
conda env export > environment.yml

# 从配置创建环境
conda env create -f environment.yml

优点:

  • 处理复杂依赖关系能力强
  • 支持非 Python 包(如 R、C++库)
  • 二进制包安装,减少编译问题
  • 跨平台一致性较好

缺点:

  • 环境体积较大
  • 社区版可能有些包更新不及时

2.pyenv + pyenv-virtualenv

这是两个工具的组合:

  • pyenv:管理多个 Python 版本
  • pyenv-virtualenv:为不同项目创建虚拟环境

安装:

# macOS
brew install pyenv pyenv-virtualenv

# Linux
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

配置 Shell(~/.bashrc 或 ~/.zshrc):

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

使用方法:

# 安装指定 Python 版本
pyenv install 3.9.13

# 列出已安装版本
pyenv versions

# 创建虚拟环境(基于特定 Python 版本)
pyenv virtualenv 3.9.13 myproject-3.9

# 激活环境
pyenv activate myproject-3.9

# 退出环境
pyenv deactivate

# 设置项目本地环境(进入目录自动激活)
cd myproject
pyenv local myproject-3.9

# 删除环境
pyenv uninstall myproject-3.9

优点:

  • 完美解决多版本 Python 共存问题
  • 项目级自动激活很方便
  • 轻量级,只管理 Python 环境

缺点:

  • 需要额外配置
  • 只管理 Python,不处理其他依赖

3.venv(Python 内置)

Python 3.3+ 内置的虚拟环境工具,无需额外安装。

特点:

  • 标准库自带:无需额外安装
  • 轻量简单:功能专一
  • Python 官方推荐

使用方法:

# 创建虚拟环境
python -m venv myenv
# 或指定 Python 版本
python3.9 -m venv myenv

# 激活环境
# Windows:
myenv\Scripts\activate
# Linux/macOS:
source myenv/bin/activate

# 退出环境
deactivate

# 创建带系统 site-packages 的环境(可访问系统包)
python -m venv --system-site-packages myenv

# 升级 pip 等工具
python -m venv --upgrade myenv

文件结构:

myenv/
├── bin/ (或 Scripts/ 在 Windows)
│   ├── activate
│   ├── pip
│   ├── python
│   └── ...
├── lib/
│   └── python3.9/site-packages/
└── pyvenv.cfg

优点:

  • 无需安装,Python 自带
  • 简单易用,学习成本低
  • 官方维护,兼容性好

缺点:

  • 不能管理 Python 版本本身
  • 功能相对简单

其他插件/工具

virtualenv(第三方,venv 的前身)

# 安装
pip install virtualenv

# 使用
virtualenv myenv
source myenv/bin/activate

pipenv

结合了 pip 和虚拟环境管理

# 安装
pip install pipenv

# 使用
cd myproject
pipenv --python 3.9        # 创建环境
pipenv install requests    # 安装包
pipenv shell               # 激活环境
pipenv lock               # 生成锁文件

Poetry

现代 Python 包管理和依赖管理

# 安装
pip install poetry

# 使用
poetry new myproject       # 创建新项目
poetry install            # 安装依赖
poetry add requests       # 添加包
poetry shell             # 激活环境

对比与选择建议

工具适用场景优点缺点
conda数据科学、机器学习、需要非Python依赖依赖管理强大,预编译包多体积大,有些包更新慢
pyenv+virtualenv多版本Python开发,项目隔离Python版本管理优秀,轻量需要配置,只管理Python
venv简单Python项目,标准开发内置无需安装,简单直接不能管理Python版本
pipenv/Poetry现代化项目管理,依赖锁定依赖管理先进,整合性好学习曲线稍陡

推荐选择:

  1. 初学者/简单项目:使用 venv,简单够用
  2. 数据科学/AI项目:使用 conda,依赖管理方便
  3. Web开发/多版本项目:使用 pyenv + virtualenvPoetry
  4. 团队协作项目:考虑 Poetrypipenv,有 lock 文件保证一致性

每种工具都可以配合使用,比如用 pyenv 管理 Python 版本,用 venv 创建虚拟环境。选择最适合你工作流的方式即可。

到此这篇关于python创建虚拟环境的3种方式的文章就介绍到这了,更多相关python创建虚拟环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3操作YAML文件格式方法解析

    Python3操作YAML文件格式方法解析

    这篇文章主要介绍了Python3操作YAML文件格式方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python如何将多个PDF进行合并

    python如何将多个PDF进行合并

    这篇文章主要为大家详细介绍了python如何将多个PDF进行合并,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Python实现字符串的逆序 C++字符串逆序算法

    Python实现字符串的逆序 C++字符串逆序算法

    这篇文章主要为大家详细介绍了Python实现字符串的逆序,C++将字符串逆序输出,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python 实现一行输入多个值的方法

    Python 实现一行输入多个值的方法

    下面小编就为大家分享一篇Python 实现一行输入多个值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Pytorch模型定义与深度学习自查手册

    Pytorch模型定义与深度学习自查手册

    这篇文章主要为大家介绍了Pytorch模型定义与深度学习的自查手册,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • python OpenCV 图像通道数判断

    python OpenCV 图像通道数判断

    这篇文章主要介绍了python OpenCV 图像通道数判断,文章基于Python的相关内容展开对文章主题的详细介绍,需要的小伙伴可以参考一下
    2022-04-04
  • 利用Matlab绘制各类特殊图形的实例代码

    利用Matlab绘制各类特殊图形的实例代码

    作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三 维图形函数,这篇文章主要给大家介绍了关于如何利用Matlab绘制各类特殊图形的相关资料,需要的朋友可以参考下
    2021-07-07
  • 带你了解Python妙开根号的三种方式

    带你了解Python妙开根号的三种方式

    这篇文章主要为大家介绍了Python妙开根号的三种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • python内置模块collections详解

    python内置模块collections详解

    这篇文章主要介绍了python内置模块collections详解,collections是Python内建的一个集合模块,提供了许多有用的集合类,python提供了很多非常好用的基本类型,比如不可变类型tuple,我们可以轻松地用它来表示一个二元向量,需要的朋友可以参考下
    2023-09-09
  • 详解python中递归函数

    详解python中递归函数

    这篇文章主要介绍了python递归函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论