如何将Python虚拟环境中的已安装包迁移至新虚拟环境?
解决pip从site-packages安装Django失败的问题
错误原因
你使用--find-links指向another-venv/Lib/site-packages/是无效的——pip的--find-links参数要求目标目录包含wheel文件(.whl)或源码归档包(.tar.gz),而site-packages里是已经解压完成的安装后代码文件,并非pip可识别的安装包格式,因此会出现找不到版本的错误。
可行解决方法
方法1:从已有虚拟环境导出Django的wheel包
- 激活已安装Django的
another-venv虚拟环境 - 执行命令将Django打包为wheel文件并导出到指定目录(比如当前目录的
local-packages文件夹):pip wheel django -w ./local-packages - 在目标虚拟环境中,使用本地包目录安装:
pip install --no-index --find-links="./local-packages" django
方法2:利用pip缓存中的wheel包
- 激活
another-venv,执行以下命令查看pip缓存目录:pip cache dir - 进入缓存目录下的
wheels子文件夹,找到对应Django版本的.whl文件,复制到本地任意目录(比如./cached-packages) - 在目标环境执行安装命令:
pip install --no-index --find-links="./cached-packages" django
注意事项
- 确保目标虚拟环境与
another-venv的Python版本一致,否则wheel包可能因版本不兼容无法安装 - 使用绝对路径替代相对路径作为
--find-links的参数,可避免因工作目录变化导致的路径错误
内容的提问来源于stack exchange,提问作者42WaysToAnswerThat
相关产品推荐
相关产品推荐

