如何在活动的 Conda 环境中可靠地扩展 PATH 变量,同时避免副作用?

问题描述 投票:0回答:1

我需要在 Linux 上扩展活动 Conda 环境的 PATH 变量,但它似乎并不像我想象的那么简单。我的挑战是这样的:

如果我在 Conda 环境处于活动状态时使用其他路径扩展 PATH 变量,它不仅会影响该环境的 PATH 变量。当我停用时,我可以很意外地看到扩展也已添加到基本环境的 PATH 变量中。这是预期的行为还是我的系统出现了奇怪的情况?我的命令很简单:

PATH=$PATH:<another_path>:<another_path>

我原以为这只会对活跃环境产生影响。这怎么会影响基础环境的 PATH 变量呢?

我也尝试过通过

设置它
conda env config vars set

这可行,但每次激活环境时都会产生恼人的警告。如果没有简单的方法来做到这一点,我会感到有点惊讶,因为 Conda 功能背后的核心理念是操纵 PATH 变量。谢谢。

linux bash path conda miniconda
1个回答
0
投票

conda 不会在您的 env 处于活动状态时跟踪您对环境变量所做的操作,然后在停用您的 env 时反转这些操作。

如果在激活环境时应始终对 PATH 进行更改,则可以执行类似于答案的操作此处

在您的 env 文件夹中,创建文件

activate.d/env_vars.sh
并填充以下内容:

export OLD_PATH=${PATH}
export PATH=/your/path:${PATH}

然后创建文件

deactivate.d/env_vars.sh
并放入

export PATH=${OLD_PATH}
unset OLD_PATH
© www.soinside.com 2019 - 2024. All rights reserved.