在我看来,这是一个非常基本的问题,但我没有找到直接的答案。
我有两台(实际上更多)PC 在 conda 环境中工作。在某些时候,我想执行重大更新,例如Python 版本。由于conda 提示很多冲突,我不知道如何处理,我可以使用所需的Python 版本创建一个新环境。但是我怎么知道我应该在那个新环境中安装哪些包呢?在“旧”中,我有:
那么,当我创建一个新环境时,我应该如何记住我在旧环境中安装了哪些软件包,因此我应该在新环境中也安装它们?
conda env export
或 conda list
不是很有帮助,因为它们显示所有包(包括它们的当前版本,可能还有对新 Python 版本不再有效的包),我想只过滤掉我自己安装的那些,所以我会知道它们也应该存在于新环境中(并且依赖项将自动安装)。同样的问题适用于 pip。
最佳答案
Conda 对用户提供的环境约束有一个特定的术语:明确的规范 .这将对应于您的第一组软件包(由用户要求安装)。可以使用--from-history
标志指定导出的环境应仅包含显式规范:
conda env export --from-history
在这一切之下,它处理 $CONDA_PREFIX/conda-meta/history
文件(其中包含所有 env-mutating Conda 命令的历史记录)以提取明确请求的约束。还应注意某些操作,例如使用 --update-deps
标志,可以触发 Conda 将 env 中的每个包添加到显式规范中。不确定是否有干净的方法解决;可能要处理history
自己归档以检查 conda install
命令。然而,这些都不会捕获用
pip
安装的东西。 .
关于python - 如何知道我在 conda(和 pip)中安装了哪些软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63901232/