gpt4 book ai didi

python - 在新的 conda 环境中使用 requirements.txt 从 conda channel 和 pip 自动安装包

转载 作者:行者123 更新时间:2023-12-04 13:12:47 25 4
gpt4 key购买 nike

我正在尝试使用 requirements.txt 设置 conda 环境一位同事与我分享的文件。我的同事在没有 Anaconda 的 Mac 上使用 Python,而我在装有 Anaconda 的 Windows 机器上使用它。文件 requirements.txt使用命令 pip freeze 生成看起来像这样:

absl-py==0.7.1
affine==2.3.0
agate==1.6.0
agate-dbf==0.2.0
agate-excel==0.2.1
agate-sql==0.5.2
...
查看 this question的答案后,我在 Anaconda 终端中尝试了以下操作:
conda create --name my-env-name --file requirements.txt
失败并显示以下错误消息:
PackagesNotFoundError: The following packages are not available from current channels:

- appscript==1.0.1
- style==1.1.0
- senticnet==1.3
- scikits.optimization==0.3
...
我的理解是,发生这种情况是因为这些软件包在 Anaconda 软件包安装 channel 中不可用,而应通过 pip 安装它们。激活我的 conda 环境,使用 pip install -r requirements.txt问题是这个包列表很长,我想避免手动检查和分离哪些包包含在 Anaconda channel 中,哪些应该通过 pip 安装。 .那么,有没有办法告诉 Anaconda 通过自动识别其 channel 中包含的包来创建环境,安装它们,然后使用 pip 安装其余的包?

最佳答案

使用 requirements.txt与 conda
使用 requirements.txt 完全没有问题创建 conda 环境时的文件。
实际上,您还可以在创建时设置其他 channel :

conda create --name my-env-name --file requirements.txt --channel <NAME_OF_CHANNEL>
例如,在您提到的第一个包的情况下,您可以从 anaconda 安装它。 channel 。所以你可以运行:
conda create --name my-env-name --file requirements.txt --channel default --channel anaconda
为什么使用 default channel 第一?好吧,只是为了优先考虑默认的( channel 的优先级由它们列出的顺序指定:从左到右更高的优先级)。
当使用 conda 时至少有一些软件包不可用时
好吧,当没有 conda channel 可以提供您所需的任何软件包时,有几种选择:
  • 通过 conda 安装在其任何 channel 中可用的那些软件包。
  • 其余的通过pip安装。
  • 创建 conda environment.yml文件:
     conda env export > environment.yml

  • 当您需要重新创建此环境时,您可以执行以下操作:
    conda env create --name my-env-name --file environment.yml
    它将使用 conda 安装软件包,将安装 pip,然后将安装仅适用于后者的软件包。
    这种方法有好有坏:
  • 好的特性之一是它将通过 conda 安装的软件包与使用 pip 安装的软件包分开。
  • 一个不好的特性是它只对 conda 有用,而不能单独用于 pip。
  • 关于python - 在新的 conda 环境中使用 requirements.txt 从 conda channel 和 pip 自动安装包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63379968/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com