如何使用pip创建和管理虚拟环境?

一、核心原理说明

pip本身不直接创建虚拟环境,但 Python 内置的venv模块可以创建隔离的虚拟环境,创建完成后,在激活的虚拟环境中使用pip安装的包,都会被限制在该环境内,不会影响全局 Python 环境 ------ 这就是用pip+venv管理虚拟环境的核心逻辑。

二、完整操作步骤(Windows/Mac/Linux 通用)

1. 检查前置条件

首先确认你的 Python 版本(需 3.3+),在终端执行:

bash

运行

复制代码
python --version  # 或 python3 --version(Mac/Linux)

如果能正常显示版本(如 3.8/3.10/3.12),说明venv模块已内置,无需额外安装。

2. 创建虚拟环境

在你项目的根目录下执行命令,格式为:

bash

运行

复制代码
# 通用格式:python -m venv 虚拟环境名称(建议用venv或myenv,直观)
python -m venv venv  # Windows
python3 -m venv venv # Mac/Linux

执行后,会在当前目录生成一个名为venv的文件夹,里面包含虚拟环境的所有文件(Python 解释器、pip、依赖包目录等)。

3. 激活虚拟环境

激活后,终端前缀会出现(venv),此时所有pip操作都只针对这个虚拟环境生效:

系统 激活命令
Windows (CMD) venv\Scripts\activate.bat
Windows (PowerShell) .\venv\Scripts\Activate.ps1
Mac/Linux source venv/bin/activate

⚠️ 注意:Windows PowerShell 首次使用可能报错 "执行策略受限",需以管理员身份打开 PowerShell,执行:

powershell

复制代码
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

然后选择Y确认,即可正常激活。

4. 用 pip 管理虚拟环境内的包

激活后,pip会自动关联到虚拟环境的 Python,操作和全局 pip 一致,但包只装在venv文件夹里:

bash

运行

复制代码
# 安装指定版本的包
pip install requests==2.31.0

# 升级包
pip install --upgrade requests

# 查看环境内已安装的包
pip list

# 导出当前环境的依赖(生成requirements.txt)
pip freeze > requirements.txt

# 从requirements.txt安装所有依赖(协作/部署时用)
pip install -r requirements.txt

# 卸载包
pip uninstall requests -y
5. 退出虚拟环境

执行简单命令即可退出,终端前缀的(venv)会消失,回到全局环境:

bash

运行

复制代码
deactivate
6. 删除虚拟环境

无需复杂命令,直接删除创建的venv文件夹即可(Windows 手动删除 / 右键删除,Mac/Linux 执行rm -rf venv)。

三、常见问题与技巧

  1. 虚拟环境中 pip 版本过低 :激活环境后升级 pip:

    bash

    运行

    复制代码
    pip install --upgrade pip
  2. 指定虚拟环境的 Python 版本 :若系统有多个 Python 版本(如 3.9 和 3.11),创建时指定对应 Python 解释器:

    bash

    运行

    复制代码
    # Windows
    py -3.11 -m venv venv
    # Mac/Linux
    python3.11 -m venv venv
  3. 避免误操作全局环境 :激活虚拟环境后,可执行which python(Mac/Linux)或where python(Windows),确认路径指向venv文件夹内的 Python,而非系统全局路径。

总结

  1. 核心流程 :用python -m venv 环境名创建虚拟环境 → 激活环境 → 用pip安装 / 管理包 → 退出 / 删除环境。
  2. 关键特性 :激活后的pip操作仅作用于虚拟环境,完全隔离全局依赖,避免版本冲突。
  3. 实用技巧 :激活环境后先升级 pip,导出requirements.txt确保环境一致性,Windows PowerShell 需先调整执行策略。
相关推荐
阿正的梦工坊5 小时前
pip install transformer_engine[pytorch]编译错误解决方法
pytorch·transformer·pip
于初见月6 小时前
Conda环境中的pip究竟指向哪里?
python·conda·pip
心 爱心 爱2 天前
pip 隔离环境内 安装 cuda 113 不覆盖原有的全局 cuda 115
pip·cuda·隔离环境
万粉变现经纪人3 天前
如何解决 pip install mysqlclient 报错 ‘mysql_config’ not found 问题
数据库·python·mysql·pycharm·bug·pandas·pip
hui函数4 天前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip
hui函数4 天前
Python系列Bug修复|如何解决 pip install 安装报错 invalid command ‘bdist_wheel’(缺少 wheel)问题
python·bug·pip
hui函数4 天前
Python系列Bug修复|如何解决 pip install -r requirements.txt 私有索引未设为 trusted-host 导致拒绝 问题
python·bug·pip
hui函数4 天前
Python系列Bug修复|如何解决 pip install 安装报错 Backend ‘setuptools.build_meta’ 不可用 问题
python·bug·pip
hui函数4 天前
Python系列Bug修复|如何解决 pip install -r requirements.txt 私有仓库认证失败 401 Unauthorized 问题
python·bug·pip