python - 如何知道我在 conda(和 pip)中安装了哪些软件包?

标签 python pip conda

在我看来,这是一个非常基本的问题,但我没有找到直接的答案。
我有两台(实际上更多)PC 在 conda 环境中工作。在某些时候,我想执行重大更新,例如Python 版本。由于conda 提示很多冲突,我不知道如何处理,我可以使用所需的Python 版本创建一个新环境。但是我怎么知道我应该在那个新环境中安装哪些包呢?在“旧”中,我有:

  • 我自己安装的包,
  • 发现需要使用 conda 包,
  • 我通过 pip 安装的软件包

  • 那么,当我创建一个新环境时,我应该如何记住我在旧环境中安装了哪些软件包,因此我应该在新环境中也安装它们? conda env exportconda 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/

    相关文章:

    python - pip3 因导入错误而崩溃

    python - 捕获当前 python 环境的快照并在另一台机器上重新创建

    anaconda - 为什么 conda update 会降级一些库

    python - matplotlib:如何缓冲标签文本?

    python - 使用open()打开文件时使用什么共享模式

    python - Tweepy 数据未以 JSON 格式显示

    python - OpenCV Python dlib 构建轮 (setup.py)

    python - 即使在设置 SLUGIFY_USES_TEXT_UNIDECODE 和 AIRFLOW_GPL_UNIDECODE 后也无法安装 Airflow

    python - 如何解决 conda 代理配置中出现的错误?

    python - 为什么 pandas 的命名约定混合了 CamelCase 和小写字母以及下划线?