【问题标题】:Create conda environment from file without default packages从没有默认包的文件创建 conda 环境
【发布时间】:2018-01-24 15:48:20
【问题描述】:

我正在尝试从文件 environment.yml 创建 conda 环境。

conda env create -f environment.yml

这可行,但我想避免安装 默认包

我找到了标志 --no-default-packages 但这仅适用于 conda create 并且此命令不接受 environment.yml 文件。

有没有办法使用environment.yml而不安装默认包?

编辑: 我的最终目标是创建可以打包(或环境的 site-packages)作为 AWS 的 lambda 的环境。但似乎 conda 对每个软件包都安装了太多。

例如:

bash-4.2# conda create --name test
bash-4.2# source activate test
(test) bash-4.2# conda install networkx
Fetching package metadata .........
Solving package specifications: .

Package plan for installation in environment /root/miniconda3/envs/test:

The following NEW packages will be INSTALLED:

    certifi:    2016.2.28-py36_0
    decorator:  4.1.2-py36_0
    networkx:   1.11-py36_0
    openssl:    1.0.2l-0
    pip:        9.0.1-py36_1
    python:     3.6.2-0
    readline:   6.2-2
    setuptools: 36.4.0-py36_1
    sqlite:     3.13.0-0
    tk:         8.5.18-0
    wheel:      0.29.0-py36_0
    xz:         5.2.3-0
    zlib:       1.2.11-0

这个命令为什么要安装Pythonpip等包?这些是networkx的真正依赖吗?

另一方面,如果我执行pip install -t . networkx,它只会按预期安装 networkx

【问题讨论】:

  • “默认包”是什么意思?您能否更具体地说明它们为何包含在环境中 - 依赖于另一个包、pip 等。
  • @darthbith:澄清了我的问题,感谢您的帮助

标签: python conda


【解决方案1】:

有没有办法使用environment.yml 而不安装默认包?

只有conda create 命令使用create_default_packagesconda env create 在设计上已经忽略了 create_default_packages 配置。

例如,我刚刚检查了将git 添加到默认包,然后从YAML 创建了一个环境,其中wget 作为唯一的依赖项,它没有安装git


这个命令为什么要安装 Python、pip 等包?这些是networkx 的真正依赖吗?

是的,这些是实际的依赖项。它们可能是依赖项的依赖项(等等),但根据包构建器,它们是安装和运行networkx 所需要的。


...如果我这样做 pip install -t . networkx 它只会安装 networkx

pip install 的比较具有误导性。 pip install CLI 命令本身是由pip 模块定义的入口点。等效的命令是:

python -m pip install networkx

这明确表明如果没有pythonpip,就无法安装networkx

请记住,Conda 从一开始就被设计为为非 Python 依赖项提供更广泛的支持,从而促进与主机系统级库的更多独立性。因此,您应该期望会有更多的依赖项,尤其是那些永远不会出现在仅使用 PyPI 的系统 Python 中的依赖项。

【讨论】:

    【解决方案2】:

    这些包是 Anaconda metapackage 的一部分,它定义了核心 Anaconda 依赖项。

    【讨论】:

      猜你喜欢
      • 2019-11-18
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多