Как удалить каталоги из PATH при деактивации среды conda - PullRequest
0 голосов
/ 07 ноября 2018

Я создал среду conda, и в этой среде я установил инструмент под названием минибаркодер, который был разработан кем-то другим, кроме меня. https://github.com/asrivathsan/miniBarcoder

Инструмент в основном представляет собой набор скриптов (python или shell). Чтобы упростить его использование, я переместил все скрипты инструмента в папку bin среды conda.

Однако сценарии miniBarcoder в папке bin зависят от набора других сценариев, расположенных в папке scripts. Я также переместил эту папку в папку bin.

Папка scripts содержит несколько сценариев, которые я хочу добавить в переменную $PATH при использовании среды, и когда я закрываю среду, я хочу удалить эти сценарии из переменной PATH при деактивации среды.

В соответствии с инструкциями руководства conda (https://conda.io/docs/user-guide/tasks/manage-environments.html#macos-and-linux) Я могу добавить папку сценариев в мой PATH, используя файл среды, который находится в папке:

/ работа / проекты / nn9305k / SRC / Анаконда / envs / minibarcoder / и т.д. / Конда / activate.d

файл env_vars.sh содержит:

#!/bin/sh

#add scripts folder to PATH
export PATH=$PATH:/work/projects/nn9305k/src/anaconda/envs/minibarcoder/bin/scripts

При активации среды это папка добавляется в переменную PATH.

Теперь моя проблема заключается в том, как удалить эту папку из переменной PATH, когда я деактивирую среду.

Для этого я создаю файл env_vars.sh в папке:

/ работа / проекты / nn9305k / SRC / Анаконда / envs / minibarcoder / и т.д. / Конда / deactivate.d

Я пробовал следующее:

    #!/bin/sh

#remove scripts from PATH
export PATH=$(echo ${PATH%:/work/projects/nn9305k/src/anaconda/envs/minibarcoder/bin/scripts

Это не удаляет каталог из переменной PATH, но когда я запускаю эту команду в командной строке, я удаляю ее из переменной PATH. Почему это не работает в моем файле env_vars.sh.?

Любые подсказки приветствуются

...