天道酬勤,学无止境

Where I can find conda yml keys?

Conda lets you define a yaml configuration file in order to create a new environment, here an example.
I was wondering where I can find a doc reference about yaml keys to use, like name, channels and dependencies.

评论

Valid Keys for YAML Environment Definitions

The valid keys are not comprehensively documented anywhere that I know of, but here's one way to find them:

# activate your base env first
$ conda activate
(base) $ python -c "import conda_env.env as env; print(env.VALID_KEYS)"
# ('name', 'dependencies', 'prefix', 'channels', 'variables')

Judging from the code for key validation, all other keys will simply be ignored, though a warning will be raised to the user.

Descriptions

  • name: If this is provided, this will be the name of the environment. This can be overridden with the --name|-n argument.

  • prefix: As an alternative to the name key, one can instead use this key to specify a location at which to install the environment. The name key will take precedence. While this does get output in conda env export commands, most users will not use this because it is a path. However, it might be useful when Conda is deployed as part of a larger software package, and the developers may wish to precisely control environment installation locations.

  • channels: This key allows users to specify alternative channels to search when resolving dependencies.

  • dependencies: This key allows for specifying packages to install. This variable accepts a list of strings (package names), as well as a sublist for pip install commands, for example:

    dependencies:
      - python
      - pip
      - pip:
        - foo
    

    Note that the values under - pip: will be parsed and placed into a temporary requirements.txt file, which is subsequently passed to pip install -r <tmp_requirements.txt>. This means that in addition to PyPI packages, one can also put GitHub packages or even separate files of requirements.txt for Pip to install. See the Advance Pip Usage example. Also, be aware that the best practice recommendation is to use Pip sparingly.

  • variables: Added in Conda v4.9, this allows one to specify environment variables that will be set and unset upon environment activation and deactivation, respectively. See the documentation on environment variables.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何跨平台共享conda环境(How to share conda environments across platforms)
    问题 http://conda.pydata.org/docs/using/envs.html上的conda文档介绍了如何与其他人共享环境。 但是,文档告诉我们这不是跨平台的: NOTE: These explicit spec files are not usually cross platform, and therefore have a comment at the top such as # platform: osx-64 showing the platform where they were created. This platform is the one where this spec file is known to work. On other platforms, the packages specified might not be available or dependencies might be missing for some of the key packages already in the spec. NOTE: Conda does not check architecture or dependencies when installing from an explicit specification file. To ensure
  • Anaconda下conda的创建、激活、退出、删除、配置虚拟环境以及pip的相关操作
    Anaconda是一个用于集成包和环境的管理,致力于简化软件管理系统和部署,此外我们还可以利用conda指令对虚拟环境进行方便的创建、激活、删除、退出和配置。pip 则是Python 包的管理工具,提供了对Python 包的查找、下载、安装、卸载的功能。 一、Anaconda创建环境 conda create -n open-cv python=3.8 -y 上述指令创建了一个名称为open-cv,python版本号为3.8的虚拟环境,-y表示遵循默认配置,后面无需再次确认。注意,在安装时如没有必要尽量不要选择最新的python版本号,因为后面配置或安装时会出现很多不确定性的因素。 二、Anaconda激活环境 conda activate $pkg_name 注:Linux系统下如何没配置好./bashrc,可使用以下临时指令激活: source ~/.bashrc source activate $pkg_name 三、Anaconda退出环境 conda deactivate 四、Anaconda删除环境 conda remove -n open-cv --all -y 五、Anaconda配置环境 通常来说,我们使用conda指令下载安装包时会使用默认的conda源下载,当时由于墙的阻碍,会导致我们下载安装包的速度极其缓慢,甚至会经常出现下载中断的现象
  • 开源量化框架Catalyst中文教程(2) -- 安装 官网教材
    InstallTo get started with Catalyst, you will need to install it in your computer. Like any other piece of software, Catalyst has a number of dependencies (other software on which it depends to run) that you will need to install, as well. We recommend using a software named Conda that will manage all these dependencies for you, and set up the environment needed to get you up and running as easily as possible. This is the recommended installation method for Windows, MacOS and Linux. See Installing with Conda.What conda does is create a pre-configured environment, and inside that environment
  • 使用本地 pip 安装导出 conda 环境(Exporting a conda environment with local pip installs)
    问题 我已经导出了我当前活动的环境 conda env export > environment.yml 这非常方便,因为它跟踪 conda 和 pip 安装的软件包。 但是,我从 Christoph Gohlke 的 Windows 编译包中的 .whl 文件中通过 pip 在本地安装了一些包(例如 shapely 和底图)。 当我尝试通过以下方式重新创建我的环境时 conda env create -f environment.yml pip 返回错误,因为它在其索引中找不到这些包(显然)。 有没有办法在 conda 导出步骤中告诉 pip 在哪里查找这些本地包? 可以假设 .whl 文件与 environment.yml 文件位于同一目录中。 回答1 据我所知,没有办法真正让它自动为.whl文件创建条目。 使其工作的最简单方法是手动更改environment.yml文件并将.whl文件添加到- pip:下的列表中。 我通过下载nose的.whl包并将其放在与我的env.yml文件相同的目录中进行了env.yml ,结构如下所示: name: python3_test dependencies: - openssl=1.0.2h=1 - pip=8.1.2=py35_0 - python=3.5.1=5 - readline=6.2=2 - setuptools=23.0.0
  • Anaconda 导出环境文件(Anaconda export Environment file)
    问题 如何制作可以在其他计算机上使用的anaconda环境文件? 我使用conda env export > environment.yml将我的 anaconda python 环境导出到 YML。 导出的environment.yml包含此行prefix: /home/superdev/miniconda3/envs/juicyenv ,它映射到我的 anaconda 的位置,这在其他人的电脑上会有所不同。 回答1 我在conda规范中找不到任何允许您导出不带prefix: ...的环境文件的内容prefix: ...行。 但是,正如 Alex 在评论中指出的那样,从文件创建环境时,conda 似乎并不关心前缀行。 考虑到这一点,如果您希望其他用户不知道您的默认安装路径,您可以在写入environment.yml之前使用grep删除前缀行。 conda env export | grep -v "^prefix: " > environment.yml 无论哪种方式,另一个用户然后运行: conda env create -f environment.yml 并且环境将安装在其默认的 conda 环境路径中。 如果您想为您的系统指定一个不同于默认安装路径(与 environment.yml 中的“前缀”无关),只需使用-p标志后跟所需的路径。 conda env create
  • Jupyter Notebook 中的 TensorFlow 问题(Trouble with TensorFlow in Jupyter Notebook)
    问题 我之前通过 Anaconda 在 Ubuntu 14.04 中安装了 Jupyter notebooks,现在我安装了 TensorFlow。 无论我是在笔记本上工作还是简单地编写脚本,我都希望 TensorFlow 能够正常工作。 为了实现这一目标,我最终安装了两次 TensorFlow,一次使用 Anaconda,一次使用 pip。 Anaconda 安装有效,但我需要在对 python 的任何调用之前使用“source activate tensorflow”。 并且 pip install 运行良好,如果以标准方式(在终端中)启动 python,那么 tensorflow 加载就好了。 我的问题是:我怎样才能让它在 Jupyter 笔记本中工作? 这让我想到了一个更普遍的问题:我在 Jupyter/Anaconda 中的 python 内核似乎与系统范围内使用的 python 内核(或环境?不确定这里的术语)是分开的。 如果这些重合会很好,这样如果我安装一个新的 python 库,它就可以被我运行 python 的所有不同方式访问。 回答1 更新 TensorFlow 网站支持五种安装。 据我了解,直接使用 Pip 安装可以在 Jupyter Notebook 中导入 TensorFlow(只要安装了 Jupyter Notebook 并且没有其他问题)b/z
  • ResolvePackageNotFound:在 MacOS 上使用 conda 和 yml 文件创建 env(ResolvePackageNotFound: Create env using conda and yml file on MacOS)
    问题 我想使用 conda 和 yml 文件创建一个虚拟环境。 命令: conda env create -n ex3 -f env.yml 输入 ENTER 它给出以下消息: ResolvePackageNotFound: - gst-plugins-base==1.8.0=0 - dbus==1.10.20=0 - opencv3==3.2.0=np111py35_0 - qt==5.6.2=5 - libxcb==1.12=1 - libgcc==5.2.0=0 - gstreamer==1.8.0=0 但是,我的 Mac 上确实有这些。 我的 MacOS:High Sierra 10.13.3 我的 env.yml 文件如下所示: name: ex3 channels: - menpo - defaults dependencies: - cairo=1.14.8=0 - certifi=2016.2.28=py35_0 - cycler=0.10.0=py35_0 - dbus=1.10.20=0 - expat=2.1.0=0 - fontconfig=2.12.1=3 - freetype=2.5.5=2 - glib=2.50.2=1 - gst-plugins-base=1.8.0=0 - gstreamer=1.8.0=0 - harfbuzz=0.9.39=2
  • Exporting a conda environment with local pip installs
    I have exported my currently active environment with conda env export > environment.yml This is very convenient since it keeps track of both conda and pip installed packages. However, I have a few packages (shapely and basemap for example) installed locally by pip from a .whl file from Christoph Gohlke's compiled packages for Windows. When I try to recreate my environment by conda env create -f environment.yml pip returns with an error since it cannot find these packages in its index (obviously). Is there a way to tell pip in the conda export step where to look for these local packages? The
  • 使用 conda 生成的 requirements.txt 设置 virtualenv(Set up virtualenv using a requirements.txt generated by conda)
    问题 我正在使用 Anaconda 虚拟环境建立一个 python 项目。 我正在生成一个 requirements.txt 以便其他人可以轻松地为项目设置他们自己的虚拟环境。 我想知道,当其他开发人员想要为该项目做出贡献,但想要使用 virtualenv 而不是 Anaconda 时,他们可以这样做吗? 我尝试了以下方法: 我在 Anaconda 环境中设置了一个空项目并安装了 aiohttp 模块。 然后conda list --export > requirements.txt生成以下内容: # This file may be used to create an environment using: # $ conda create --name <env> --file <this file> # platform: win-64 aiohttp=2.3.9=py36_0 async-timeout=2.0.0=py36hc3e01a3_0 certifi=2018.1.18=py36_0 chardet=3.0.4=py36h420ce6e_1 multidict=3.3.2=py36h72bac45_0 pip=9.0.1=py36h226ae91_4 python=3.6.4=h6538335_1 setuptools=38.4.0=py36_0 vc=14
  • conda/pip导出environment.yml/requirements.txt
    pip 导出/导入 requirements.txt 导出 pip freeze > requirements.txt 导出格式(范例): 从文件中可以看到需要安装的package以及对应的版本 导入 pip install -r requirements.txt conda 导出/导入 requirements.txt 导出 conda list -e > requirements.txt 导出格式(范例): 单纯的一看,conda导出的文件没有pip导出来的东西那么单纯,里面有很多看不懂的东西,我猜测是一些虚拟环境依赖的东西吧。就像第2行注释的那句:conda create --name <env> --file <this file>,应该可以直接通过这句创建一个新的虚拟环境,从这里面还可以找到虚拟环境中使用的python的版本,但pip导出来的中看不到 导入 conda install --yes --file requirements.txt (这种执行方式,一遇到安装不上就整体停止不会继续下面的包安装) FOR /F "delims=~" %f in (requirements.txt) DO conda install --yes "%f" (这个执行能解决上面出现的不执行后续包的问题) reference:https://www.cnblogs.com
  • 使用“ conda install --yes --file requirements.txt”仅安装可用的软件包,而不会出现错误(Install only available packages using “conda install --yes --file requirements.txt” without error)
    问题 通过以下命令使用Conda在requirements.txt中安装软件包时 conda install --yes --file requirements.txt 如果Requirements.txt中的程序包不可用,则会抛出“ No package error”(无程序包错误),如下所示: 使用Anaconda Cloud API网站https://api.anaconda.org 正在获取软件包元数据:.... 错误:在当前linux-64通道中找不到与以下软件包匹配的软件包:nimfa == 1.2.3 您可以在anaconda.org上搜索该程序包,方法是: anaconda search -t conda nimfa ==1.2.3 除了抛出错误外,是否可以更改此行为,以使其将所有可用的软件包安装在requirements.txt中,并对不可用的软件包发出警告? 我想这样做是因为错误提示说的nimfa软件包不可用,可以通过pip安装。 因此,如果可以更改conda install --yes --file requirements.txt的行为以仅对不可用的软件包发出警告,则可以在.travis.yml中使用命令pip install -r requirments.txt requirments.txt进行后续处理,以便TravisCI尝试从任何可用的地方安装它。
  • Conda 将一个 environment.yml 导入另一个(Conda importing one environment.yml into another)
    问题 考虑将具有依赖项的 Python 子模块导入具有自身依赖项的项目的情况。 假设子模块有它的environment.yml文件,而项目本身有一个environment.yml文件。 有没有办法创建一个包含这两个环境规范的环境,如果是这样,您将如何进行? (或者是否有更好/更优选的方法来处理这种情况?) 回答1 我猜你是开发子模块和项目的人,因为依赖项仍然在environment.yml文件中。 选项 1:使用子模块的 environment.yml 更新项目环境 不幸的是,如果您的子模块依赖于conda包,这可能是您唯一的选择。 # First create the project environment $ conda env create --force -f project_environment.yml # Then update with submodule dependencies $ conda env update -n project-env-name --file submodule_environment.yml 这不太理想,因为基本期望是您导入的库带有自己的依赖项。 选项 2:将依赖项放入各自的 requirements.txt 文件中 这仅适用于可以通过pip从 PyPi 安装子模块依赖项的情况。
  • 使用Kubeflow构建机器学习流水线
    在此前的文章中,我已经向你介绍了Kubeflow,这是一个为团队设置的机器学习平台,需要构建机器学习流水线。 在本文中,我们将了解如何采用现有的机器学习详细并将其变成Kubeflow的机器学习流水线,进而可以部署在Kubernetes上。在进行本次练习的时候,请考虑你该如何将现有的机器学习项目转换到Kubeflow上。 我将使用Fashion MNIST作为例子,因为在本次练习中模型的复杂性并不是我们需要解决的主要目标。对于这一简单的例子,我将流水线分为3个阶段: Git clone代码库 下载并重新处理训练和测试数据 训练评估 当然,你可以根据自己的用例将流水线以任意形式拆分,并且可以随意扩展流水线。 获取代码 你可以从Github上获取代码: % git clone https://github.com/benjamintanweihao/kubeflow-mnist.git 以下是我们用来创建流水线的完整清单。实际上,你的代码很可能跨多个库和文件。在我们的例子中,我们将代码分为两个脚本,preprocessing.py和train.py。 from tensorflow import keras import argparse import os import pickle def preprocess(data_dir: str): fashion_mnist =
  • 我可以选择conda环境的存储位置吗?(Can I choose where my conda environment is stored?)
    问题 创建虚拟环境时,可以将/ Users / nolan / miniconda / envs /路径更改为另一路径吗? 我希望它特定于我的项目目录。 (就像我们可以使用virtualenv一样) $conda info -e Using Anaconda Cloud api site https://api.anaconda.org # conda environments: # _build /Users/nolan/miniconda/envs/_build myen3 /Users/nolan/miniconda/envs/myen3 nolanemirot /Users/nolan/miniconda/envs/nolanemirot root * /Users/nolan/miniconda 回答1 您可以通过编辑用户目录中的.condarc文件来更改环境目录。 添加以下内容,指定所需目录的路径: envs_dirs: - /Users/nolan/newpath 回答2 如果您希望它相对于您的项目目录,请使用--prefix标志:https: --prefix ? --prefix = --prefix 例如,如果使用environment.yml文件定义环境,并且希望在项目的venv目录中创建环境,则可以使用以下命令: conda env create -f
  • 我可以将频道添加到特定的 conda 环境吗?(Can I add a channel to a specific conda environment?)
    问题 我想将 conda 通道添加到特定的 conda 环境,但是当我使用 conda config --add channels glotzer 该频道现在可从我的所有 conda 环境中使用。 除了从另一个环境测试安装之外, ~/.condarc文件还有以下内容: channels: - glotzer - defaults 我将如何配置 conda 以便通道只能在特定环境中使用? 我确实在频道文档中发现,对于 conda >= 4.1.0,将频道放在~/.condarc的底部将防止添加的频道覆盖核心包集。 默认情况下,conda 现在更喜欢来自较高优先级频道的包,而不是来自较低优先级频道的任何版本。 因此,您现在可以安全地将频道放在频道列表的底部,以提供不在默认频道中的附加包,并且仍然确信这些频道不会覆盖核心包集。 我希望这可以防止大多数问题,除非在一个环境中您确实希望通过渠道添加的包覆盖核心包。 回答1 从.condarc 4.2 开始,支持特定.condarc环境的.condarc文件,您可以编写: conda config --env --add channels glotzer 将通道添加到活动环境的配置中。 [不确定是否在 4.2 中添加了--env标志。 基于 conda 4.5.9 的答案] 回答2 更新 截至 2017 年 1 月,无法向单个 conda
  • 如何在Anaconda(Conda)环境中跟踪点子安装的软件包?(How do I keep track of pip-installed packages in an Anaconda (Conda) environment?)
    问题 我已经安装并一直在使用Anaconda Python发行版,并且已经开始使用Anaconda(Conda)环境。 我可以使用标准的conda install...命令将分发包中的软件包放入我的环境中,但是要使用外部的任何内容(例如Flask-WTF,flask-sqlalchemy和Alembic),我需要在活动环境中使用pip install 。 但是,当我查看环境的内容时,无论是在目录中还是在conda list这些pip install ed软件包都不会显示。 使用pip freeze和pip list仅列出了我安装的每个软件包。 有没有办法跟踪每个Anaconda env的内容(既安装了pip又安装了conda )? 回答1 conda-env现在可以自动执行此操作(如果pip与conda一起安装)。 您可以使用用于迁移环境的导出工具来查看其工作原理: conda env export -n <env-name> > environment.yml 该文件将列出conda软件包和pip软件包: name: stats channels: - javascript dependencies: - python=3.4 - bokeh=0.9.2 - numpy=1.9.* - nodejs=0.10.* - flask - pip: - Flask-Testing
  • How to fix “module 'tensorflow' has no attribute 'estimator' ” error
    I'm using conda (env created via YAML) + pip to set up a Tensorflow v1.13.1 environment on my Linux Mint box. After setup, whenever I try to import tf.estimator I receive the AttributeError described in the title: AttributeError: module 'tensorflow' has no attribute 'estimator' I do not have any version of TF installed outside of a conda environment (or on pip). I do have another conda environment set up the same way but with Tensorflow 2.0 alpha, which can import tf.estimator just fine. I have tried removing the environment and building it again I have tried rebooting :( For some reason I
  • How to have egg files from github install with pip not in current directory but in the conda env directory?
    I am creating a python env using conda, pip and yml config file by using first: conda env create -f test.yml -n test_pip then conda env update -f test.yml -n test_pip with the following .yml file (for test only): channels: - defaults - conda-forge dependencies: - python=3.5 - numpy - scipy - scikit-learn - jupyter - ipykernel - requests - pandas - seaborn - click - openpyxl - matplotlib - pip: - watermark - "-e git+https://github.com/slundberg/shap#egg=shap" - pytest - sklearn - autopep8 It works fine but the egg file is install in the current dir "src/shap/" while I would like to have it
  • 有没有办法在 environment.yml 中拥有特定于平台的依赖项?(Is there a way to have platform-specific dependencies in environment.yml?)
    问题 我正在尝试使用 Conda 为项目 (LensKit) 设置构建和测试环境,并且需要具有特定于平台的依赖项。 具体来说,在 Linux 构建上我需要libgfortran和openssl ,但在 Windows 上不需要。 有没有办法在environment.yml中声明我需要libgfortran但仅在 32 位和 64 位 Linux 平台上? 或者我是否需要有单独的环境定义来涵盖这种情况? 我看到的另一个可能的解决方案是创建一个虚拟包并将其发布到 http://anaconda.org,它只取决于每个平台所需的基本包,并在environment.yml要求该包。 回答1 “虚拟包”实际上被称为“元包”。 请参阅 http://conda.pydata.org/docs/building/meta-pkg.html。 这似乎是一个不错的选择。 或者,您可以为您的项目构建一个 conda 包吗? 在meta.yml recipe 的meta.yml您可以为不同平台使用选择器。 http://conda.pydata.org/docs/building/meta-yaml.html#preprocessing-selectors 回答2 我偶然发现了同样的问题,并为这个问题写了一个小解析器。 在您的情况下,您可以创建一个environment.yml.meta文件,如下所示:
  • Anaconda:使用 environment.yml 从特定渠道安装特定软件包(Anaconda: Install specific packages from specific channels using environment.yml)
    问题 有谁知道如何构建 Anaconda environment.yml 文件,以便它安装来自特定渠道的特定软件包? 像这样的东西: dependencies: - numpy - pandas - package-A from channel Z - package-B from channel Y 我能找到的只是您可以使用channels:命令指定频道。 但显然它然后从第一个可用的频道中获取包 - 但我需要一些来自非常特定频道的包(但它存在于不同“版本”的多个频道上)。 回答1 我看到了类似的东西 dependencies: - chanelname::modulename=X.Y.Z 更新现在实施:https://github.com/conda/conda/issues/7202 旧答案小心,因为它似乎没有实施。 从设计上讲,通道是一个“空间”,其中的依赖关系是健壮的。 所以删除它可能会破坏依赖关系。