Python 虚拟环境入门:给每个项目一间干净的“工作间”
为什么你的第二个 Python 项目会“翻车”
很多初学者都遇到过这样的场景:第一个项目需要 requests 2.25,第二个项目却依赖 requests 2.31,装完新的,旧的又跑不起来了。原因很简单——所有包默认都装进了同一个全局环境里,项目之间互相“踩脚”。
虚拟环境就是解决这个问题的:给每个项目单独划分一间“工作间”,包的安装、卸载都只发生在这一间里,互不干扰。Python 从 3.3 起内置了 venv 模块,不需要额外安装任何工具。
三步走:创建、激活、退出
第一步:创建
打开终端,进入项目目录,执行:
python -m venv venv
这会在当前目录生成一个 venv 文件夹,里面是一套独立的 Python 解释器和包目录。文件夹名字可以自定义,习惯上常叫 venv 或 .venv。
第二步:激活
Windows PowerShell 下执行:
.\venv\Scripts\Activate.ps1
CMD 下是 venv\Scripts\activate.bat;Linux 和 macOS 下则是:
source venv/bin/activate
激活成功后,命令行开头会出现 (venv) 标记。此时执行 where python(Linux/macOS 用 which python)确认,指向的应该已经是 venv 文件夹里的解释器。
第三步:退出
deactivate
装包与依赖清单
激活环境后,pip install 装的所有包都只落在这间“工作间”里。为了让别人(或部署服务器)能复现你的环境,要养成导出依赖清单的习惯:
pip freeze > requirements.txt
到新机器上一条命令即可恢复:
pip install -r requirements.txt
这份清单建议提交到代码仓库,但 venv 文件夹本身不要提交,写进 .gitignore 即可。
新手常见的三个坑
- PowerShell 提示“在此系统上禁止运行脚本”:执行一次 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,允许本地脚本运行即可。
- 激活了环境却还是装到全局:多半是激活失败但没注意。每次激活前先看命令行有没有 (venv) 前缀,用 where python 验证最稳妥。
- IDE 里跑的还是全局解释器:VS Code、PyCharm 都要在项目设置里手动指向 venv 里的 python,否则点运行时用的仍是全局环境。
写在最后
虚拟环境是 Python 开发的“第一道工程习惯”,成本只有三条命令,却能让依赖冲突、环境复现这些最耗时的问题从根上消失。如果身边还有人直接往全局环境里 pip install,不妨把这篇转给 TA。
- 点赞
- 收藏
- 关注作者
评论(0)