我想要一个 shell 脚本,比如
myscript
(#!/bin/sh
或 #!/bin/bash
,它会修改 PATH
、PYTHONPATH
和 LD_LIBRARY_PATH
),每当我激活 conda
env 时执行,比如 xyz
。我把它放在里面${CONDA_PREFIX}/etc/conda/activate.d/
,它不起作用。
我尝试将
source "${CONDA_PREFIX}/etc/conda/activate.d/myscript"
放入${CONDA_PREFIX}/bin/activate
中,发现${CONDA_PREFIX}/bin/activate
根本没有执行,即使在echo
开头的一个简单的${CONDA_PREFIX}/bin/activate
语句在我激活conda activate xyz
时也没有显示任何内容!该怎么办?
注意:激活
xyz
后,如果我 source ${CONDA_PREFIX}/etc/conda/activate.d/myscript
它工作正常。请帮忙。
更重要的是: 当我手动
source ${CONDA_PREFIX}/etc/conda/activate.d/myscript
时,更改是永久性的,因此即使我切换到另一个环境,PYTHONPATH
和其他内容仍然会被修改。我希望 myscript
只影响 xyz
环境。
清单:
CONDA_PREFIX
中的${CONDA_PREFIX}/etc/conda/activate.d
是要激活的环境。在您的情况下,它位于 conda 根目录中。要获取的文件必须具有 envs/xyz
扩展名。在你的情况下它必须是
.sh
要撤消 myscript.sh
的效果,您应该创建
activate.d/myscript.sh
。如果您的 deactivate.d/myscript.sh
仅包含 activate.d/myscript.sh
,则您的 export _SOME_VAR=value
应包含 deactivate.d/myscript.sh