Python 入门:每个项目都该有一个独立的虚拟环境
Python 入门:每个项目都该有一个独立的虚拟环境
先说一个常见翻车现场
学 Python 没多久,很多人都会遇到这种事:A 项目要 requests 2.x,B 项目要 requests 1.x;给 A 装了新版,B 就跑不起来;给 B 降回去,A 又报错。更糟的是,跟着教程装了一堆包之后,根本记不清哪个包是哪个项目要的,换台电脑重装环境,像开盲盒。
问题不在包本身,而在所有项目共用同一个 Python 环境。解决办法很简单:每个项目一个虚拟环境(venv),互不干扰。
虚拟环境是什么
虚拟环境就是给项目单独划出的一套 Python 解释器和包目录。你在这个环境里装什么、升级什么,都只影响当前项目,不会动系统 Python,也不会动别的项目。
Python 3.3 起自带 venv,不用额外装工具,够入门用。等项目多了,再学 conda、uv 也不迟,先把 venv 的手感练熟。
动手走一遍
# 1. 进到项目目录
cd my-project
# 2. 创建虚拟环境(名字习惯叫 .venv,不放进版本库)
python3 -m venv .venv
# 3. 激活
source .venv/bin/activate # Linux / macOS
# Windows 上是:.venv\Scripts\activate
# 4. 激活后命令提示符前面会出现 (.venv),这时再装包
pip install requests
# 5. 退出环境
deactivate
激活后 which python 和 which pip 指向的都是 .venv 里的版本,这就是隔离生效的证据。没激活时装包,装的是全局环境——新手最容易在这里踩坑:明明装了,运行却说找不到。
两个好习惯
第一,建好环境第一件事是把依赖记下来:
pip freeze > requirements.txt
换电脑、换同事接手时,只要 pip install -r requirements.txt 就能还原同一套依赖,不用凭记忆一个个装。
第二,把 .venv 加进 .gitignore,不要把几百 MB 的环境文件提交进 Git。版本库里只留代码和 requirements.txt,环境是可以随时重建的。
常见疑问
装包很慢怎么办?先确认是不是网络问题,国内可以临时换一个镜像源,例如 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests,只影响这一次安装,不改全局配置。
系统自带的 Python 能不能直接用来装包?不建议。系统工具可能依赖它,乱升级容易把系统工具搞坏。自己的项目一律用虚拟环境,系统 Python 只留给系统。
虚拟环境是不是越建越多、占磁盘?是,但这是值得付的成本:一个项目几十到几百 MB,换来的是“每个项目都能独立跑起来”。项目删了,对应的 .venv 一并删掉就行。
一句话总结
学 Python 不必先学一堆工具,但要先养成一个习惯:新建项目先 python3 -m venv .venv,再激活、再装包。环境隔离做对了,后面少踩一半的坑。
- 点赞
- 收藏
- 关注作者
评论(0)