Python之虚拟环境

Python之虚拟环境

虚拟环境是 Python 开发中的重要工具,它可以为每个项目创建独立的 Python 运行环境,解决不同项目间的依赖冲突问题。

虚拟环境核心概念

为什么需要虚拟环境?

  • 隔离项目依赖:不同项目可能需要不同版本的库

  • 避免污染系统环境:防止包安装到全局 Python 中

  • 便于依赖管理:每个项目有独立的依赖清单

  • 团队协作:确保所有开发者使用相同的环境

虚拟环境注意事项

  • 每个项目单独环境:避免依赖冲突

  • 不提交环境目录:在 .gitignore 中添加 myenv/

  • 提交依赖文件:确保 requirements.txt 或 Pipfile 提交到版本控制

  • 文档记录环境:在 README 中说明 Python 版本和主要依赖

  • 定期更新依赖:使用 pip list --outdated 检查更新

虚拟环境是 Python 开发的基础设施,合理使用可以大大提高开发效率和项目可维护性。

在这里插入图片描述

创建虚拟环境

使用 venv (Python 3.3+ 内置)

# 创建虚拟环境
python -m venv myenv

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

上述命令解释:

  • 虚拟环境:为每个项目单独建一个 “软件安装目录”(比如 myvenv)

  • 拷贝 Python 解释器、pip 等工具到 myvenv/Scripts文件夹

  • 所有依赖包都安装到 myvenv/Lib/site-packages

  • 完全独立,不干扰其他项目

在这里插入图片描述

使用 virtualenv (第三方工具,支持Python 2/3)

pip install virtualenv
# 安装全局python一样版本的环境
virtualenv myenv

在这里插入图片描述

与 venv创建方式的区别
Python 版本支持
  • venv:是 Python 3.3 及以上版本内置的模块,因此只支持 Python 3.x 版本。你不需要单独安装它,直接使用 python -m venv 来创建虚拟环境。
  • virtualenv:是一个第三方工具,支持 Python 2.x 和 Python 3.x,适用于多种 Python 版本。你需要通过 pip install virtualenv 安装它。
功能与兼容性
  • venv:是 Python 官方推荐的工具,功能较为简洁,适合大多数使用场景。但它仅支持创建 Python 3 的虚拟环境,因此对于需要兼容 Python 2.x 的项目不适用。
  • virtualenv:功能更为丰富,并且兼容 Python 2.x 和 3.x,可以创建多种版本的虚拟环境,适用于更多的场景,特别是如果你在项目中需要支持多个 Python 版本。
依赖关系和性能
  • venv:是 Python 官方的一部分,性能较为高效。它的依赖相对较少,并且由于其内置于 Python 中,它不依赖外部安装,简化了使用过程。
  • virtualenv:由于是第三方工具,可能会有额外的依赖,并且需要通过 pip 安装。某些情况下,virtualenv 在创建虚拟环境时会比 venv 更加灵活,但也可能需要更多的配置和管理。
命令行工具
  • venv:使用 python -m venv 来创建虚拟环境,命令简单,直接。
  • virtualenv:使用 virtualenv 命令来创建虚拟环境,使用时需要先通过 pip install virtualenv 安装。
创建虚拟环境时的差异
  • venv:创建虚拟环境时,它会根据系统的 Python 版本来生成相应的环境。若需要特定版本的 Python,用户必须手动切换。
  • virtualenv:可以指定 Python 版本(如 virtualenv -p python3.9 myenv),并且可以灵活选择你想要的 Python 版本来创建虚拟环境。

使用 conda (Anaconda/Miniconda)

conda create --name myenv python=3.8

激活/退出虚拟环境

操作系统激活命令退出命令
Linux/Macsource myenv/bin/activatedeactivate
Windowsmyenv\Scripts\activatedeactivate
Condaconda activate myenvconda deactivate

在这里插入图片描述在这里插入图片描述
进入虚拟环境,会看到(虚拟环境名称在前面,代表进入虚拟环境中)

虚拟环境管理

安装/卸载包

# 安装包
pip install package

# 安装指定版本
pip install package==1.0.0

# 从requirements.txt安装
pip install -r requirements.txt

# 卸载包
pip uninstall package

导出依赖

pip freeze > requirements.txt

在这里插入图片描述

复制虚拟环境

# 方案1:通过requirements.txt
pip freeze > requirements.txt
python -m venv newenv
source newenv/bin/activate # Linux/Mac 可执行文件
目录\myenv\Scripts\activate # windows环境
pip install -r requirements.txt

# 方案2:直接复制(不推荐)
cp -r oldenv newenv

在这里插入图片描述

删除虚拟环境

  • 直接删除目录即可
rm -rf myenv  # Linux/Mac
rd /s /q myenv  # Windows

虚拟环境目录结构

典型的 venv 虚拟环境目录结构:

myenv/
├── bin/            # Linux/Mac 可执行文件
│   ├── python      # Python 解释器
│   ├── pip         # pip 工具
│   └── activate    # 激活脚本
├── Scripts/        # Windows 可执行文件
│   ├── python.exe
│   ├── pip.exe
│   └── activate.bat
├── Lib/            # 安装的包
│   └── site-packages/
└── pyvenv.cfg      # 虚拟环境配置文件

高级用法

继承系统全局包

python -m venv myenv --system-site-packages

指定不同版本的Python

# 使用指定Python版本创建
virtualenv -p /usr/bin/python3.7 myenv

使用 pipenv (更高级的虚拟环境管理)

pip install pipenv
pipenv install package  # 自动创建虚拟环境
pipenv shell           # 进入虚拟环境

使用 poetry (现代Python项目管理)

pip install poetry
poetry new project     # 创建项目
poetry add package     # 添加依赖
poetry shell           # 进入虚拟环境

IDE集成

VS Code

创建虚拟环境(如果尚未创建)

在项目文件夹中打开终端(Ctrl + ~),运行以下命令:

# 创建虚拟环境(默认使用 Python 3)
python -m venv .venv
.venv 是虚拟环境文件夹的名称(可自定义,如 venv、env 等)。

在这里插入图片描述

如果系统有多个 Python 版本,需指定路径,例如:

# 使用 Python 3.11 创建虚拟环境
C:\Python311\python.exe -m venv .venv
在 VS Code 中打开项目

打开项目文件夹:

  • 启动 VS Code,点击 File > Open Folder(或直接拖拽文件夹到 VS Code)。

  • 确保 Python 扩展已安装:

  • 在扩展市场(Ctrl + Shift + X)搜索 Python,安装 Microsoft 官方 Python 扩展。
    在这里插入图片描述

选择虚拟环境中的 Python 解释器

打开命令面板:

  • 按 Ctrl + Shift + P(Mac:Cmd + Shift + P)。

  • 输入并选择命令:
    在这里插入图片描述

  • 输入 Python: Select Interpreter,按回车。

  • 选择虚拟环境的 Python:

    • 列表中会显示所有检测到的 Python 解释器,格式通常为:
    .venv\Scripts\python.exe (Windows)
    .venv/bin/python (Linux/macOS)
    
    • 选择你的虚拟环境路径(如下图)。
      在这里插入图片描述

VS Code 选择解释器

验证虚拟环境是否生效
  • 检查终端:

打开新终端(Ctrl + Shift + ~),注意路径前是否显示 (.venv),例如:

(.venv) PS C:\your_project>
如果没有自动激活,手动运行:
  • Windows:
.venv\Scripts\activate
  • Linux/macOS:
source .venv/bin/activate

在这里插入图片描述

  • 安装依赖:

在激活的虚拟环境中,用 pip 安装项目所需的包(如 pip install numpy),这些包会安装到虚拟环境中,而非全局。

PyCharm

  • 打开项目设置 File > Settings

  • 选择 Project: YourProject > Python Interpreter

  • 添加虚拟环境中的 Python

在这里插入图片描述

常见问题解决

激活脚本无法执行

# Windows 报错"无法加载脚本"
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

虚拟环境找不到包

  • 确保已激活正确的虚拟环境

  • 检查 pip list 确认包已安装

  • 确认 IDE 使用的是虚拟环境的解释器

跨平台兼容性问题

  • Windows 和 Linux 创建的虚拟环境不能混用

  • 建议每个平台单独创建环境

pip工具使用方法

安装方法对比表
安装方式命令示例适用场景优点缺点注意事项
pip安装pip install package
pip install package==1.0.0
大多数常规安装场景简单直接,自动解决依赖需要网络连接推荐使用虚拟环境
指定源安装pip install package -i https://pypi.tuna.tsinghua.edu.cn/simple国内用户加速下载下载速度快需要知道可用的镜像源常用镜像源:清华、阿里云、豆瓣等
安装whl文件pip install package-1.0.0-py3-none-any.whl离线安装或安装预编译包避免编译过程,安装快需要提前下载对应版本的whl文件注意Python版本和系统架构匹配
安装tar.gz源码pip install package-1.0.0.tar.gz需要从源码安装或自定义安装可查看源码可能需要编译环境可能需要安装编译工具(gcc等)
setup.py安装python setup.py install开发模式安装或本地包安装适合开发调试可能影响系统Python环境建议在虚拟环境中使用
conda安装conda install packageAnaconda/Miniconda环境自动处理复杂科学计算包的依赖包版本可能不如PyPI新适合数据科学领域
批量安装pip install -r requirements.txt项目依赖批量安装一键安装所有依赖需要维护requirements.txt文件文件格式:package==1.0.0
常用pip命令补充
操作命令说明
升级pippython -m pip install --upgrade pip确保使用最新版pip
查看已安装包pip list列出所有已安装的包
检查可升级包pip list --outdated显示可升级的包
升级包pip install --upgrade package升级指定包
卸载包pip uninstall package移除已安装的包
查看包信息pip show package显示包的详细信息
下载包不安装pip download package -d "dir"只下载不安装,适合离线环境
导出环境依赖pip freeze > requirements.txt生成依赖文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值