当前位置:首页>python>Python 虚拟环境保姆教程

Python 虚拟环境保姆教程

  • 2026-10-11 07:34:07
Python 虚拟环境保姆教程
很多刚开始学 Python 的鱼油,第一次安装第三方库时,通常会直接输入:
pip install requests
然后发现代码能跑,就觉得这样没问题。确实,这样确实没啥问题
但随着我们写的项目越来越多,什么爬虫、Flask 网站、数据分析、自动化脚本等等……你就会慢慢意识到一个问题:所有项目都在共用同一套 Python 库。这就像我们把所有课程的书、所有工具、所有杂物都堆在同一个桌子上。刚开始东西少,还能凑合着玩耍,时间久了,桌子越来越乱,除了看着烦之外,它们之间还会互相影响。那么 Python 的虚拟环境,就是专门用来解决这个问题的!
为什么一定要用虚拟环境?

我们可以将虚拟环境理解成:

给每个 Python 项目单独准备的一个 “小房间”。

这样,每个项目都有了自己的房间。

每个房间里放着:这个项目需要的 Python 解释器、第三方库和相关工具。

小甲鱼知道,对初学者来说,虚拟环境看起来像是 “多此一举”。

下面我列举几个原因,你们就明白虚拟环境的重要性了!

一、防止不同项目之间的互相影响假设我们有一个旧的项目,它依赖某个库的旧版本。后来在做其他新项目时,把这个库升级到了新的版本。这时候,旧的那么项目可能就会突然跑不起来了。这类问题对新手来说很烦,因为报错看起来不像是 “版本冲突”,可能只是突然提示某个函数不存在、某个参数不能用了。
你刚开始可能会以为是自己代码写错了,但其实搞到最后发现只是因为依赖库的版本变了。没错,这时候使用虚拟环境就直接从根源上避免了这种麻烦。每个项目都有自己的小房间,自己管理自己所需的库,谁也不影响到谁。
二、方便别人运行我们的项目如果你把项目发给朋友,或者上传到 GitHub,别人拿到代码后会问:这个项目到底需要安装哪些库?如果我们没有记录依赖,对方只能边运行边报错,缺什么装什么,这样就非常麻烦……
但如果我们使用虚拟环境,并且生成一个依赖文件(requirements.txt)别人只需要直接运行下面命令:
pip install -r requirements.txt
一次性把项目所需要的库安装稳妥。这就是为什么很多 Python 项目里都会有 requirements.txt 文件。三、让你的电脑更干净如果我们将所有库都装到全局 Python 里,时间久了,全局环境会变得很乱。届时我们可能都不知道哪些库是哪个项目用的。有些库已经没用了,但还保留在电脑里。有些库的版本很旧了,但我们既不敢删,又不敢乱升级,因为鬼知道之后某个项目会不会突然就不能运行了……
所以,虚拟环境在这里的好处是:当一个项目不要了,可以直接删除其虚拟环境即可,一点儿都不会影响到其他项目和系统主环境!或者如果一个虚拟环境坏了,我们想重建的话,很多时候只需要直接删掉 .venv,然后重新创建就可以了。
创建虚拟环境

下面我们正式开始操作。

我们先在桌面创建一个项目文件夹,叫 FishC

然后打开终端,然后进入到这个项目文件夹中:

cd .\Desktop\FishC\

在大多数情况下,创建虚拟环境只需要一个命令:

python -m venv .venv

如果是 macOS 或 Linux 系统,命令需要写成:

python3 -m venv .venv

venv 就是 Python 官方提供的虚拟环境工具。

.venv 表示要创建的虚拟环境的名字。

这个名字可以自定义,但一般保持 .venv 即可,因为很多编辑器会默认识别 .venv。

创建完成后会发生什么?

创建成功后,我们的项目目录大概会变成这样:

FishC|-- .venv|-- main.py

.venv 就是我们的虚拟环境文件夹。

一般不需要手动改 .venv 里面的文件。

它里面会保存这个虚拟环境自己的 Python、pip 以及后面安装的第三方库。

激活虚拟环境

虚拟环境创建好之后,并不会默认开启。

我们必须要先激活它,然后才能使用!

激活的意思就是告诉当前终端:接下来的操作,请使用这个项目自己的 Python 环境。

不同系统的激活命令不一样。

Windows PowerShell

如果使用的是 Windows PowerShell,输入:

.\.venv\Scripts\Activate.ps1

如果提示这个:

这不是你的问题,也不是小甲鱼的问题,这是 PowerShell 的执行策略阻止了脚本运行……

只需要执行这个语句:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

然后重新激活虚拟环境即可:

激活成功的标志就是命令行前面多了个(.venv)

Windows CMD

如果使用的是传统 CMD,输入:

.\.venv\Scripts\activate.bat

macOS / Linux

如果使用的是 macOS 或 Linux,输入:

source .venv/bin/activate
在虚拟环境里安装第三方库

激活虚拟环境之后,我们再安装第三方库,就会直接到安装到 .venv 文件夹里面。

让我们来测试一下:

python -m pip install requests

看,现在 Requests 库就直接安装在我们的项目文件夹中了:

我们也可以使用这个命令来列举当前环境中安装了哪些东东(以及它们相应的版本):

python -m pip list

发现,明明只安装了 requests,为什么多了好几个包?

这是正常的。

因为 requests 自己也依赖其他包。

当你安装 requests 时,pip 会自动把它需要的依赖也一起装好。

为我们的项目生成 requirements.txt

虚拟环境解决了 “当前项目怎么管理包” 的问题。

但还有一个问题:

如果别人要运行我的项目,怎么知道要装哪些包?

这时候就需要生成一个依赖文件,也就是 requirements.txt

生成这个,我们只需要在虚拟环境激活的状态下运行:

python -m pip freeze > requirements.txt

这个命令会把当前环境中的包和版本写进 requirements.txt 文件。

生成后,项目目录可能变成这样:

FishC|-- .venv|-- main.py|-- requirements.txt

打开 requirements.txt,里面大概长这样:

certifi==2026.5.20charset-normalizer==3.4.7idna==3.17requests==2.34.2urllib3==2.7.0

这个文件的作用就像一张清单。

它告诉别人:

运行这个项目,需要安装这些包,而且最好安装这些版本。

别人拿到项目后怎么安装依赖?

假设你的朋友拿到了你的项目。

他不需要你的 .venv 文件夹。

他只需要:

  1. 创建自己的虚拟环境;

  2. 激活虚拟环境;

  3. 根据 requirements.txt 安装依赖。

安装依赖使用这个命令:

python -m pip install -r requirements.txt

这样,他的电脑上也会安装一套和你项目类似的依赖环境。

.venv 要不要发给别人?

一般不要!!

因为 .venv 文件夹通常很大,而且里面的内容和你的操作系统、Python 路径有关。

比如你在 Windows 上创建的 .venv,别人用 macOS,不一定能直接用。

所以正确做法是:

不发 .venv,只发代码和 requirements.txt。

如果是使用 Git,可以在项目里创建一个 .gitignore 文件,然后写入:

.venv/

这样 Git 就不会把 .gitignore 上传上去了。

退出虚拟环境

当我们不再写这个项目时,就可以退出虚拟环境。

命令很简单:

deactivate

退出后,终端前面的 (.venv) 一般会消失。

最新文章

随机文章