提问者:小点点

激活conda环境时如何设置特定的环境变量?


有人知道在conda中激活环境时如何自动设置环境变量吗?我尝试过编辑*/bin/activate,但这会为创建的每个新环境添加新的环境变量。我想设置特定于每个环境的环境变量。


共3个答案

匿名用户

使用文件$CONDA_PREFIX/etc/conda/active. d$CONDA_PREFIX/etc/conda/deactive. d,其中$CONDA_PREFIX是环境的路径。

请参阅官方文档中有关管理环境的部分以获取参考。

匿名用户

康达v4。8在conda env工具中引入了一个新的命令行界面,用于在每个环境的基础上管理环境变量。命令是conda env config vars,下面是从v4开始的帮助说明。8.3对于总体指挥:

$ conda env config vars -h
usage: conda-env config vars [-h] {list,set,unset} ...

Interact with environment variables associated with Conda environments

Options:

positional arguments:
  {list,set,unset}
    list            List environment variables for a conda environment
    set             Set environment variables for a conda environment
    unset           Unset environment variables for a conda environment

optional arguments:
  -h, --help        Show this help message and exit.

examples:
    conda env config vars list -n my_env
    conda env config vars set MY_VAR=something OTHER_THING=ohhhhya
    conda env config vars unset MY_VAR

也许有点冗长,但它避免了在etc/conda/(de |)activate中手动管理文件。d

在Conda v4.9中添加,现在支持自动定义环境特定变量,作为环境YAML定义的一部分。例如,

name: foo
channels:
  - defaults
dependencies:
  - python
variables:
  MY_VAR: something
  OTHER_VAR: ohhhhya

这将设置环境变量MY_VAROTHER_VAR分别在环境激活和停用时设置和取消设置。

匿名用户

公认的答案(conda/active. dconda/deactive. d)工作得很好,但是如果您希望环境变量被版本控制,而不将整个环境也置于版本控制中,这是不方便的。通常,您希望只在版本控制中存储environment.yml文件。

(我知道这并不适用于所有项目-有时使用环境变量的全部原因是为了防止特定配置存储在版本控制中。)

我的首选(在Windows上,但同样的原则也适用于Linux)是创建一个(版本控制的)activate。cmd项目目录根目录中的文件,该文件设置环境变量,然后调用conda自己的activate。蝙蝠脚本。

示例(每个项目的pylint配置):

set PYLINTRC=%cd%\pylintrc
@activate.bat %cd%\env

请注意,在Windows上,至少在调用activate之前必须设置环境变量。bat因为对的调用已激活。bat永远不会返回调用批处理文件。您还必须为自己的脚本命名,而不是activate。bat以避免递归,这就是为什么我选择了cmd扩展名(Windows在此上下文中将其视为批处理文件)。