换电脑迁移 Python 环境,第一件事就是搞清楚旧机器装过哪些包。一条 pip list 就能看全:
pip list
输出两列,Package 和 Version,是当前环境里所有已装的包和版本号。
几个实用变体
- pip list --outdated:只列有新版本的包,升级前先评估有没有不兼容风险。
- pip show 包名:看某个包的版本、依赖和安装位置。
- pip freeze:输出成 包名==版本 的固定格式,方便写进依赖文件。
- pip list --format=freeze:换一种输出格式,方便脚本处理。
导出依赖清单的标准做法是 pip freeze > requirements.txt,新机器上跑 pip install -r requirements.txt 一把装齐。注意 freeze 会把依赖的依赖也全列出来,清单很长是正常的。
多个 Python 并存时
机器上装了多个 Python 或一堆虚拟环境,pip 命令可能指向另一个解释器,查出来的列表跟项目对不上。用 python -m pip list 的写法最保险,它保证用的是 python 命令对应解释器的 pip。具体哪个 pip 挂在哪,pip -V 输出末尾的路径一眼就能确认。
别在错误的环境里查
最常见的乌龙是没激活虚拟环境就跑 pip list,看到的是全局环境。Windows 下先执行 venv 目录里 Scripts 下的 activate,Linux 和 Mac 是 source venv/bin/activate,等命令行提示符前面出现环境名再操作。
列表越拉越长怎么办
环境用久了装了一堆当时图省事的包,真用到的没几个。清理前先 pip show 看有没有别的包依赖它,别一卸卸断一片。想看包之间的依赖层级,可以装 pipdeptree 这类小工具,依赖树打印出来,谁带进来的谁一目了然。
日常建议:每个项目单独建虚拟环境,依赖清单进版本库,换机器、换人接手时对不上号的麻烦能少一大半。