Python 学习笔记:虚拟环境 venv,一次讲清
学 Python 写到第二个项目时,很多人都会撞上同一个问题:A 项目要某个库的旧版本,B 项目要新版本,装在一起就互相打架。这时候就该请出虚拟环境了——Python 自带的 venv,不用额外装工具,就能给每个项目一个独立的“小房间”。
虚拟环境到底是什么?可以把它理解成给项目单独准备的一套 Python 运行环境:有自己的解释器链接和自己的包目录。在这个房间里装什么库、装哪个版本,都只影响当前项目,不会动到系统全局的 Python。项目之间互不干扰,出了问题删掉重建也不心疼。
用法其实只有四步。第一步,在项目目录里创建:python -m venv venv,这会在当前目录下生成一个 venv 文件夹。第二步,激活它:Linux 或 macOS 下是 source venv/bin/activate,Windows 下是 venv\Scripts\activate,激活成功后命令行前面会多出一个 (venv) 标记。第三步,在激活状态下用 pip 安装项目需要的库,装进来的东西只进这个环境。第四步,做完收工用 deactivate 退出,命令行标记消失,就回到了全局环境。
有几个新手常踩的坑值得先说清楚。第一,venv 文件夹不要提交到代码仓库,里面动辄几百兆,还跟操作系统绑定,换台机器就用不了;正确做法是把依赖记下来,pip freeze > requirements.txt,别人拿到项目后重建环境再 pip install -r requirements.txt 即可。第二,创建虚拟环境时要确认用的是哪个 Python 版本,系统里装了多个版本时,python 可能指向的并不是你以为的那一个,先 python --version 确认一下能省很多麻烦。第三,别在虚拟环境里再用 sudo 装包,一旦提权安装,包就可能装到系统目录去,隔离就白做了。
还有一个常见疑问:每个项目都要建一个吗?对初学者来说,答案是肯定的。养成“一项目一环境”的习惯,成本只是多敲两条命令,换来的却是再也不用为版本冲突翻旧账。等项目多了,还可以用 requirements.txt 给每个环境留一张“配料表”,重建环境就是一条命令的事。
上手建议:今天就拿手头一个小项目练一遍——建环境、激活、装一个库、退出、删掉重建。走完这一圈,虚拟环境就从概念变成了肌肉记忆,后面学 Web 开发、爬虫、数据处理,都会默认站在这个好习惯上。
- 点赞
- 收藏
- 关注作者
评论(0)