python 的 venv 这个概念和 ruby 的 rvm 是一样的,核心思想就在于不同的项目用不同的环境来管理依赖和版本

在指定目录(一般是项目目录)下创建用来保存 python 虚拟环境的文件目录(这里用 spider 举例)

$ python -m venv ./spider

激活虚拟环境

$ source ./spider/bin/activate

激活后在命令提示符的最前端会有 <spider> 的字样,表示你已经在这个虚拟环境中了

pip install …

此时安装的 package 都会保存到 ./spider/lib/python3/site-packages/,同时,可以直接从别的路径把 package 拷贝到当前虚拟环境的这个包管理目录,免去从头装很多包的麻烦

退出虚拟环境

$ deactivate

非常方便就可以退出当前虚拟环境,观察命令行提示符前端的 <spider> 字样已经消失

更换源

临时:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

默认:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

参考资料: