Python 入门:虚拟环境与包管理,一次讲清楚
为什么需要虚拟环境
刚学 Python 时,很多人会把所有包都装进系统 Python。做第一个项目装了 requests 2.28,做第二个项目又需要 requests 2.31,或者两个项目依赖同一个库的不同版本,环境很快就会互相打架。更麻烦的是,系统 Python 是操作系统或其他工具也在用的,改坏了很难恢复。
虚拟环境就是给每个项目单独建一个“小房间”:项目自己的解释器、自己的 site-packages,装什么包、装哪个版本,都只影响这个项目,不会波及别的项目和系统环境。
用 venv 创建虚拟环境
Python 3.3 之后自带 venv,不用另外安装工具。进入项目目录后执行:
python -m venv .venv
这会在项目下生成 .venv 文件夹,里面有一份独立的 Python 和 pip。Windows 上激活:
.venv\Scripts\activate
macOS / Linux 上激活:
source .venv/bin/activate
激活后,命令行前面会出现 (.venv),表示现在装包、运行代码用的都是这个环境。退出环境用 deactivate。
pip:安装、管理与锁定依赖
激活环境后,用 pip 安装包:
pip install requests
查看已安装的包用 pip list,升级 pip 自身用 pip install --upgrade pip。项目快完成时,把依赖“拍照”存下来:
pip freeze > requirements.txt
换一台电脑或者交给同事时,对方只要新建虚拟环境,再执行 pip install -r requirements.txt,就能得到同一套依赖。这是团队协作里最常用、也最不容易出错的做法。
常见问题与好习惯
第一,.venv 文件夹不要提交到 Git,在 .gitignore 里加一行 .venv/ 即可,提交 requirements.txt 就够了。第二,不要用 sudo 或管理员权限往系统 Python 里装包,系统环境保持干净。第三,一个项目一个环境,哪怕只是练手的小项目也这样做,习惯一旦养成,后面做 Web、爬虫、数据分析,都不会在环境问题上浪费时间。第四,升级某个包之前先想想会不会影响其他依赖,重要项目升级前先在新环境里试一遍。
小结
虚拟环境解决的是“隔离”问题:项目之间互不干扰,环境可以重建、可以分享。今天就可以动手:新建一个文件夹,用 venv 建环境、装一个 requests、导出 requirements.txt,把完整流程走一遍。把这套流程变成肌肉记忆,之后学 Flask、Django 或者数据分析,起手式都是一样的。
- 点赞
- 收藏
- 关注作者
评论(0)