Python 虚拟环境 venv 创建保姆级教程
既然我们要开始聊 Python 开发,有一个痛点我们肯定都会遇到:系统里通常只装了一个 Python 3 版本,所有的第三方包都会被 pip 塞进同一个 site-packages 目录下。
想象一下,如果我们同时开发两个项目,应用 A 必须用 Jinja 2.7,而应用 B 却依赖老旧的 Jinja 2.6,这时候系统里的 Python 就会左右为难。为了解决这种版本打架的问题,我们必须为每个应用创建一套“隔离”的 Python 运行环境。
今天我们就以创建一个 newproject 为例,看看我们如何利用内置的 venv 模块来打造这个独立的小世界。
1. 建立项目阵地
首先,我们先创建一个存放代码的文件夹。打开终端或命令行,执行以下操作:
mkdir newprojectcd newproject2. 搭建隔离环境
在 newproject 目录下,我们直接调用 Python 的 venv 模块来初始化环境。我们习惯把这个环境起名叫 .venv,这样它在项目里就是一个隐藏文件夹。
# 执行这条命令后,Python 会把一套完整的运行环境拷贝到 .venv 文件夹里python -m venv .venv3. “进入”我们的虚拟环境
环境建好了,但我们还没进去。我们需要通过“激活(activate)”脚本,让当前的终端识别这个隔离环境。
-
如果我们在 Windows 平台上:
-
CMD:
.venv\Scripts\activate -
PowerShell:
.\.venv\Scripts\Activate.ps1
-
-
如果我们在 macOS 或 Linux 上:
source .venv/bin/activate
重点观察: 激活成功后,我们的命令行提示符前会多出一个 (.venv) 字样。这意味着从现在起,我们所有的 pip install 操作都只会影响这个 newproject,而不会动系统全局的 Python。
4. 管理依赖包
现在我们可以根据需求,在隔离环境里安装不同版本的包了:
-
定向安装:
pip install jinja2==2.7 -
导出清单: 当我们把环境配好后,记得运行
pip freeze > requirements.txt。这份清单就是我们项目的“配方”,别人拿到代码后,只需pip install -r requirements.txt就能完美复刻我们的环境。
5. 退出与销毁
当我们忙完 newproject 的活儿,想切换回系统环境或者去干别的,流程也非常简单。
退出环境
直接在终端输入:
deactivate你会发现前面的 (.venv) 消失了,一切恢复如初。
彻底删除
如果我们觉得这个项目不需要了,或者想推倒重来,直接删除文件夹即可。venv 没有任何系统残留,它就是一个纯粹的文件夹。
-
手动: 在文件管理器里右键删除
.venv文件夹。 -
命令行:
-
Windows:
rd /s /q .venv -
macOS/Linux:
rm -rf .venv
-
小结
venv为应用提供了隔离的Python运行环境,解决了不同应用间安装多版本的冲突问题。
推荐文章
基于标签匹配 · 智能推荐支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
喵斯基部落