杰瑞科技汇

Python virtualenv 安装,如何正确配置与使用?

目录

  1. 什么是 Virtualenv?为什么需要它?
  2. 安装 Virtualenv
  3. 基本使用方法
  4. 常用命令详解
  5. 最佳实践
  6. 常见问题与解决方案 (FAQ)
  7. 替代品:venvpipenv

什么是 Virtualenv?为什么需要它?

virtualenv 是一个用于创建独立的 Python 环境的工具。

Python virtualenv 安装,如何正确配置与使用?-图1
(图片来源网络,侵删)

一个生动的比喻: 想象一下你的电脑是一个厨房。

  • 系统 Python (System Python): 就像是厨房里公用的调味架,每个人都用它来放盐、糖、酱油,如果有人放了太多盐或者不小心把糖当成盐放了,大家做的菜都会受影响。
  • Virtualenv 环境: 就像是为每个菜(项目)准备的独立小碗,你为“红烧肉”项目准备一个小碗,只放红烧肉需要的调料;为“西红柿鸡蛋”项目准备另一个小碗,只放它需要的调料,这样,项目之间完全不会互相干扰。

核心作用:

  • 项目隔离: 避免不同项目之间的库版本冲突,项目 A 需要 requests==2.25.0,而项目 B 需要 requests==2.28.0,在 virtualenv 环境中,每个项目都可以拥有自己独立的 requests 版本。
  • 依赖管理: 每个环境都有自己的 site-packages 目录,可以清晰地看到当前项目依赖了哪些库。
  • 保持系统 Python 干净: 系统级的 Python 应该只用于操作系统本身需要的管理任务,而不应该被各种项目的库搞得一团糟。

安装 Virtualenv

安装 virtualenv 非常简单,通常使用 Python 的包管理器 pip

前提条件

确保你的系统中已经安装了 Python 和 pip,你可以在终端/命令行中运行以下命令检查:

Python virtualenv 安装,如何正确配置与使用?-图2
(图片来源网络,侵删)
# 检查 Python 版本
python --version
# 或者 (如果你有多个 Python 版本)
python3 --version
# 检查 pip 版本
pip --version
# 或者
pip3 --version

安装步骤

打开你的终端 (Windows 下是 CMD 或 PowerShell, macOS/Linux 下是 Terminal),运行以下命令:

# 推荐使用 pip3 来安装,以避免与系统旧版本冲突
pip3 install virtualenv

验证安装 安装完成后,运行以下命令检查是否安装成功:

virtualenv --version

如果能输出版本号(16.7),则表示安装成功。


基本使用方法

使用 virtualenv 主要分为三步:创建激活使用

Python virtualenv 安装,如何正确配置与使用?-图3
(图片来源网络,侵删)

创建虚拟环境

假设你的项目文件夹叫做 my_project,首先进入该目录,然后创建一个名为 venv 的虚拟环境。

# 1. 创建并进入项目目录
mkdir my_project
cd my_project
# 2. 创建虚拟环境
#    `venv` 是环境的名字,你可以自定义,`env`, `.env` 等
virtualenv venv

解释: 执行这个命令后,my_project 目录下会出现一个新的 venv 文件夹,这个文件夹就包含了独立的 Python 解释器和 pip

激活虚拟环境

创建完环境后,你需要“激活”它,让终端知道接下来要使用这个独立的环境。

在 Windows (CMD/PowerShell) 中:

# 在 CMD 中
venv\Scripts\activate.bat
# 在 PowerShell 中 (可能需要先执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)
venv\Scripts\Activate.ps1

在 macOS / Linux 中:

source venv/bin/activate

如何确认环境已激活? 激活成功后,你终端的命令行最前面会出现环境的名字,像这样:

# (venv) C:\Users\YourUser\my_project>
# 或者
# (venv) your-user@your-computer:~/my_project$

这个 (venv) 提示符告诉你,当前终端正在使用 venv 这个虚拟环境。

使用虚拟环境

你可以在这个环境中安装项目所需的库了,这些库只会安装到当前的环境中,不会影响系统 Python。

# 安装项目依赖,Flask
pip install Flask
# 查看当前环境安装了哪些包
pip list

停用虚拟环境

当你完成工作后,想退出当前环境,只需运行:

deactivate

运行后,命令行前面的 (venv) 提示符就会消失,表示你已经回到了系统环境。


常用命令详解

命令 描述
virtualenv [env_name] 创建一个名为 [env_name] 的新虚拟环境。
virtualenv -p /usr/bin/python3.8 myenv 指定使用特定路径的 Python 解释器创建环境。
source venv/bin/activate macOS/Linux: 激活虚拟环境。
venv\Scripts\activate Windows: 激活虚拟环境。
deactivate 停用当前虚拟环境,返回系统环境。
which python (macOS/Linux) / where python (Windows) 查看当前使用的 Python 解释器路径,激活后,它会指向环境内的 Python。
pip list 列出当前环境中已安装的所有包。
pip freeze 将当前环境中已安装的包及其版本号输出,格式适合用于 requirements.txt
pip install -r requirements.txt 根据 requirements.txt 文件安装所有依赖。

最佳实践

  1. 将虚拟环境文件夹加入 .gitignore 虚拟环境文件夹(如 venv)包含了特定于你机器的文件,不应该被提交到版本控制系统(如 Git)中,在项目根目录创建一个 .gitignore 文件,并添加以下内容:

    # .gitignore
    venv/
    env/
    .venv/
  2. 使用 requirements.txt 共享依赖 当你需要将项目分享给他人时,不应该分享虚拟环境,而应该分享依赖列表。

    • 生成依赖文件: 在你的虚拟环境中运行:
      pip freeze > requirements.txt
    • 安装依赖: 其他人克隆你的项目后,创建并激活虚拟环境,然后运行:
      pip install -r requirements.txt
  3. 为每个项目创建独立的环境 一个项目一个环境,这是 virtualenv 的核心原则。


常见问题与解决方案 (FAQ)

Q1: 在 Windows PowerShell 中激活环境时遇到错误 cannot be loaded because running scripts is disabled on this system

A: 这是 PowerShell 的执行策略导致的,为了安全,默认情况下 PowerShell 不运行脚本,你只需要为当前会话临时修改策略即可。 在 PowerShell 中运行:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

然后再尝试激活环境:

.\venv\Scripts\Activate.ps1

这个修改只在当前 PowerShell 窗口有效,关闭后失效,所以不会影响系统安全。

Q2: 如何删除一个虚拟环境?

A: 只需删除代表该环境的文件夹即可。

# 在项目根目录下执行
# macOS/Linux
rm -rf venv
# Windows (CMD 或 PowerShell)
rmdir /s /q venv

Q3: pip 命令找不到,或者提示不是内部或外部命令。

A:

  1. 检查 Python 和 pip 是否已添加到系统环境变量 PATH 中。
  2. 使用 python -m pip 代替 pip,这种方式更可靠,因为它会直接调用与当前 Python 解释器关联的 pip
    python -m pip install virtualenv

替代品:venvpipenv

虽然 virtualenv 非常经典,但现在 Python 社区也涌现出了一些优秀的替代品。

venv - Python 内置模块

从 Python 3.3 开始,标准库中自带了一个 venv 模块,功能与 virtualenv 基本相同。

  • 优点: 无需安装,是 Python 的一部分。
  • 缺点: 功能比 virtualenv 少,例如不能指定不同版本的 Python
分享:
扫描分享到社交APP
上一篇
下一篇