Python虚拟环境virtualenv详解:新手也能轻松上手的环境隔离神器

20次阅读
没有评论

在Python开发中,你是否遇到过这样的困扰?—— 同时开发两个项目,一个需要用Django 3.x,另一个需要用Django 4.x,安装其中一个版本后,另一个项目就报错无法运行;或者不小心升级了某个依赖库,导致旧项目突然崩溃。

其实,这些问题的核心原因只有一个:所有项目共用了系统全局的Python环境,不同项目的依赖包版本冲突,进而引发各种异常。而virtualenv,就是解决这个痛点的“神器”——它能为每个项目创建独立的虚拟环境,实现依赖隔离,让你的开发环境更干净、更可控。

这篇博文会手把手教你:什么是virtualenv、为什么必须用它、以及Windows/macOS/Linux全平台的安装和使用方法,全程实操无废话,新手也能轻松跟上!

一、先搞懂:virtualenv到底是什么?

virtualenv 是Python的一个第三方工具,核心功能是创建独立的Python虚拟环境。简单来说,它就像为每个项目搭建了一个“专属小间”,这个房间里有自己独立的Python解释器、pip工具,以及项目所需的各种依赖包。

这个“小房间”和系统全局环境、其他项目的虚拟环境完全隔离:你在这个环境里安装、升级、卸载依赖,不会影响系统全局Python,也不会影响其他项目的环境。

举个例子:项目A需要requests 2.25.0版本,项目B需要requests 2.31.0版本,用virtualenv为两个项目分别创建虚拟环境,各自安装对应版本的依赖,就能完美避免冲突,两个项目都能正常运行。

二、为什么一定要用virtualenv?(新手必看)

很多新手觉得“麻烦”,习惯直接用系统全局环境开发,但随着项目增多,你一定会踩坑。总结下来,virtualenv有3个不可替代的优势:

  1. 解决依赖版本冲突:这是最核心的作用。不同项目对依赖包的版本要求不同,虚拟环境能实现“版本隔离”,避免“一升级全崩溃”。
  2. 保持系统环境干净:不用在系统全局安装大量依赖包,只有常用的工具(如virtualenv、pip)需要全局安装,减少系统冗余,也避免误删依赖导致系统异常。
  3. 便于项目迁移和协作:可以将项目的依赖包列表导出(如requirements.txt),其他人拿到后,只需创建虚拟环境、安装依赖,就能快速复现你的开发环境,避免“我这能运行,你那报错”的尴尬。

补充说明:Python 3.3+ 自带了venv模块(virtualenv的简化版),但virtualenv功能更全面、兼容性更好,支持Python 2.x和3.x,是更推荐的选择。

三、全平台安装virtualenv(Windows/macOS/Linux通用)

virtualenv是第三方工具,需要用pip全局安装。在安装前,请确保你已经搭建好Python环境(如果还没搭建,可以参考我之前的博文:Windows系统Python + pip 完整安装教程)。

1. 全局安装virtualenv

打开终端(Windows用cmd/PowerShell,macOS/Linux用终端),输入以下命令,回车即可安装:

pip install virtualenv

安装完成后,输入以下命令验证是否成功:

virtualenv --version

如果出现版本号(如20.24.0),说明安装成功。

2. 常见安装问题解决

  • Windows报错:’virtualenv’ 不是内部或外部命令:原因是pip安装的路径未添加到系统环境变量。解决方法:找到Python安装目录下的Scripts文件夹(如C:\Python310\Scripts),将其添加到系统环境变量PATH中,重启终端即可。
  • macOS/Linux报错:permission denied:在命令前加sudo,即 sudo pip install virtualenv,输入密码后即可安装。

四、virtualenv核心用法(实操步骤,必练)

以下步骤全平台通用,我们以“创建一个名为myproject的项目虚拟环境”为例,一步步操作。

步骤1:创建项目文件夹(规范操作)

先创建一个项目文件夹,用于存放项目代码和虚拟环境(建议一个项目一个文件夹),命令如下:

# 1. 进入你想存放项目的目录(示例:Windows的D盘project文件夹)
cd D:\project

# 2. 创建项目文件夹(如myproject)
mkdir myproject

# 3. 进入项目文件夹
cd myproject

步骤2:创建虚拟环境

在项目文件夹内,输入以下命令,创建一个名为venv的虚拟环境(venv是约定俗成的命名,也可以叫env、virtualenv等):

virtualenv venv

执行命令后,会在myproject文件夹下生成一个名为venv的文件夹,这个文件夹就是虚拟环境的“专属小房间”,里面包含了独立的Python解释器、pip等工具。

注意:虚拟环境的文件夹(venv)不需要手动修改或删除,也不要提交到代码仓库(可在.gitignore中添加venv/)。

步骤3:激活虚拟环境(关键步骤)

创建好虚拟环境后,必须激活它,才能在这个环境中安装依赖、运行项目。不同系统的激活命令不同,重点区分:

  • Windows系统(cmd命令行)venv\Scripts\activate
  • Windows系统(PowerShell).\venv\Scripts\Activate.ps1如果PowerShell报错“禁止运行脚本”,执行命令Set-ExecutionPolicy RemoteSigned,按Y确认即可。
  • macOS/Linux系统source venv/bin/activate

激活成功的标志:终端提示符前会出现 (venv),比如:(venv) D:\project\myproject>,这说明你已经进入了虚拟环境,接下来的所有操作都只作用于这个环境。

步骤4:在虚拟环境中安装依赖

激活虚拟环境后,用pip安装项目所需的依赖,比如安装requests、Django等:

# 安装requests(示例)
pip install requests

# 安装指定版本的Django(示例)
pip install django==4.2.7

此时安装的依赖,只会存放在venv虚拟环境中,不会影响系统全局环境,也不会影响其他项目。

步骤5:导出依赖列表(便于迁移/协作)

当项目开发完成,或者需要分享给其他人时,可以将虚拟环境中的所有依赖包及版本导出为requirements.txt文件,命令如下:

pip freeze > requirements.txt

执行后,会在项目文件夹下生成一个requirements.txt文件,里面记录了所有依赖包的名称和版本,比如:

requests==2.31.0
django==4.2.7
virtualenv==20.24.0

步骤6:从依赖列表安装(复现环境)

如果拿到别人的项目,或者在另一台电脑上开发,只需先创建并激活虚拟环境,然后执行以下命令,就能快速安装所有依赖:

pip install -r requirements.txt

这样就能完美复现项目的开发环境,避免依赖版本不匹配的问题。

步骤7:退出虚拟环境

当不需要使用虚拟环境时,输入以下命令即可退出,终端提示符前的(venv)会消失:

deactivate

步骤8:删除虚拟环境(如需)

如果项目不再需要,直接删除虚拟环境的文件夹(venv)即可,不会影响其他内容。删除方法:

  • Windows:右键删除venv文件夹。
  • macOS/Linux:终端输入 rm -rf venv

五、virtualenv常用命令汇总(收藏备用)

命令 功能说明
pip install virtualenv 全局安装virtualenv
virtualenv 虚拟环境名 创建虚拟环境(如virtualenv venv)
venv\Scripts\activate(Windows) 激活虚拟环境
source venv/bin/activate(macOS/Linux) 激活虚拟环境
deactivate 退出虚拟环境
pip freeze > requirements.txt 导出依赖列表
pip install -r requirements.txt 安装依赖列表中的所有包
virtualenv –version 查看virtualenv版本

六、新手常见坑及解决方法

  1. 激活虚拟环境后,pip安装的包仍在全局环境原因:没有正确激活虚拟环境,终端提示符前没有(venv)。解决:重新执行对应系统的激活命令,确认(venv)出现后,再用pip安装。
  2. PowerShell激活时提示“禁止运行脚本”解决:执行命令 Set-ExecutionPolicy RemoteSigned,按Y确认,允许本地脚本运行。
  3. 导出的requirements.txt包含多余的包原因:激活虚拟环境前,已经在全局环境安装了很多包,激活后没有重新安装,直接导出。解决:创建新的虚拟环境,重新安装项目所需依赖,再导出requirements.txt。
  4. 多个虚拟环境混淆建议:每个项目单独创建虚拟环境,且虚拟环境命名统一为venv,便于区分和管理。

七、总结:virtualenv使用流程(新手必记)

一套完整的使用流程,记住这6步,就能轻松搞定虚拟环境:

1. 创建项目文件夹:mkdir myproject && cd myproject
2. 创建虚拟环境:virtualenv venv
3. 激活虚拟环境:对应系统的激活命令
4. 安装依赖:pip install 所需包
5. 导出依赖:pip freeze > requirements.txt
6. 退出虚拟环境:deactivate

virtualenv虽然简单,但却是Python开发中不可或缺的工具。养成使用虚拟环境的习惯,能帮你避免很多依赖冲突的麻烦,让你的开发过程更顺畅。

如果觉得virtualenv的命令有点繁琐,后续我会再介绍更简洁的工具(如virtualenvwrapper、pipenv),关注我,带你解锁更多Python开发技巧!

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)