问题描述
在使用pip freeze > ./requirements.txt
和pip install -r requirement.txt
(requirements.txt文件用来记录当前程序的所有依赖包及其精确版本号)从一台电脑移植到另一台电脑的 conda 环境时,出现了一堆类似的报错:
ERROR: Could not install packages due to an OSError: [Errno 2] 没有那个文件或目录: ‘/home/conda/feedstock_root/build_artifacts/argon2-cffi-bindings_1666850853622/work’
此时查看 requirement.txt 文件,发现里面很多包的形式是:
包名+版本号+@ file:///tmp/build/xxx/xxx/work
这是 pip 安装软件包的一种特殊语法,但是该种路径取决于环境,file:///URL 仅在本地文件系统上可用,不能将生成的 requirements.txt 文件在另一台电脑上使用。
解决方案
可以使用以下命令从源环境中重新导出 requirement.txt:
pip list --format=freeze > requirements.txt
此时requirements文件中就都是版本号了(但好像会把许多不必要的环境配置也添加进来)。
A u t h o r : C h i e r Author: Chier Author:Chier