2. 创建与激活第一个虚拟环境
这是什么:python -m venv = 在项目目录里生成一个名为 .venv 的虚拟环境文件夹;激活 = 让终端临时切进这个环境。
为什么用:上一章说清了隔离的价值,接下来得真造一个出来。只有在激活的状态下装包,pip 才会把包装进这个项目,而不是全局。
如何用:本章两条命令创建、一条命令激活,Windows、macOS、Linux 三套命令全给你,再用 pip -V 验证。
2.1 创建
cd my-project # 进入项目目录(没有就 mkdir 建一个)
python -m venv .venv # 在当前目录创建名为 .venv 的虚拟环境
几秒后你会看到目录里多了一个 .venv/ 文件夹:
my-project/
└── .venv/
├── Scripts/ ← Windows 的可执行文件在这
├── bin/ ← macOS/Linux 的在这
└── ...(pyvenv.cfg 等)
命名用
.venv(点开头)是社区惯例:隐藏目录、IDE 自动识别、.gitignore一行通杀。
2.2 激活
Windows PowerShell:
.venv\Scripts\Activate.ps1
Windows CMD:
.venv\Scripts\activate.bat
macOS / Linux:
source .venv/bin/activate
激活成功的标志——提示符前多了 (.venv):
(.venv) PS C:\Work\my-project>
PowerShell 首次激活报错(本站教程常见翻车点):
...running scripts is disabled on this system.
解决——放开当前用户的脚本执行策略,然后重开终端再试:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
2.3 验证:环境真的生效了吗
(.venv) python -m site
你会看到 sys.path 里 第一个路径就是 .venv\...\site-packages——之后 pip 装的东西都进这里,而不是全局。
也可以直接:
(.venv) where python # Windows
(.venv) which python # macOS/Linux
输出指向 .venv 内部即成功。
2.4 退出与「激活」的本质
(.venv) deactivate # 退出环境,回到全局
记住本质:激活只影响当前这个终端窗口。新开一个终端不会自动激活,要再手动执行一次激活命令。关掉终端 = 自动退出,不存在「残留状态」。
三个环境里可以是一套代码、三个解释器入口——激活哪个,用哪个。
2.5 动手改
- 建一份
.venv,激活python -m site对照第 1 章的全局结果 deactivate后再跑which python,确认回到全局- 故意把
.venv重命名为.venv_bak,再激活——体会「环境 = 文件夹」
2.6 小结
python -m venv .venv创建;各有各的激活命令,成功标志是提示符前的(.venv)- PowerShell 报「disabled」就改执行策略
- 激活只管当前终端;退出 deactivate / 关窗即失效
下一章:正确地用 pip 装包 🐸