Lui*_*ise 11 python pip anaconda conda
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
...
Run Code Online (Sandbox Code Playgroud)
检查完这个问题的答案后,我在 Anaconda 终端中尝试了以下操作:
conda create --name my-env-name --file requirements.txt
Run Code Online (Sandbox Code Playgroud)
失败并显示以下错误消息:
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
...
Run Code Online (Sandbox Code Playgroud)
我的理解是,发生这种情况是因为这些软件包在 Anaconda 软件包安装渠道中不可用,并且应该通过以下方式安装它们pip激活我的 conda 环境来安装它们,使用pip install -r requirements.txt
问题是这个包列表非常长,我想避免手动检查和分离哪些包包含在 Anaconda 通道中以及哪些包应该通过pip. 那么,有没有办法告诉 Anaconda 创建一个环境,自动识别其频道中包含的软件包,安装它们,然后使用安装其余的软件包pip?
Nic*_*ica 20
requirements.txt与康达一起使用requirements.txt创建conda环境时使用文件完全没有问题。
事实上,您还可以在创建时设置其他通道:
conda create --name my-env-name --file requirements.txt --channel <NAME_OF_CHANNEL>
Run Code Online (Sandbox Code Playgroud)
例如,对于您提到的第一个软件包,您可以从anaconda频道安装它。所以你可以运行:
conda create --name my-env-name --file requirements.txt --channel default --channel anaconda
Run Code Online (Sandbox Code Playgroud)
为什么首先使用default通道?好吧,只是优先考虑默认通道(通道的优先级按它们列出的顺序指定:从左到右优先级较高)。
好吧,当没有 conda 频道可以提供您所需的任何软件包时,有几种选择:
通过 conda 安装其任何渠道中可用的软件包。
其余部分通过 pip 安装。
创建一个 condaenvironment.yml文件:
conda env export > environment.yml
Run Code Online (Sandbox Code Playgroud)
当您需要重新创建此环境时,您可以执行以下操作:
conda env create --name my-env-name --file environment.yml
Run Code Online (Sandbox Code Playgroud)
它将使用 conda 安装软件包,安装 pip,然后安装仅适用于后者的软件包。
这种方法有好有坏:
| 归档时间: |
|
| 查看次数: |
22120 次 |
| 最近记录: |