#python #conda #environment
#python #conda #Окружающая среда
Вопрос:
У меня есть скрипт, используемый os.system(cmd)
для запуска канала. Мне нужен канал для запуска в определенной среде Conda, поэтому я попытался сделать что-то вроде этого:
cmd = 'conda activate base amp;amp; ' cmd
os.system(cmd)
Тем не менее, я получаю:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
Дело в том, что моя оболочка настроена правильно. Если я запускаю то же cmd
самое в оболочке, все работает так, как ожидалось.
Я тоже пробовал использовать subprocess.run(cmd, shell=True)
, но получаю тот же результат.
Есть ли способ запуска conda activate base
из скрипта Python?
Комментарии:
1. Если это macOS / linux, вам необходимо
source <conda-base>/etc/profile.d/conda.sh
, прежде чем вы сможете запускать команды conda.2. @cel Это сработало. Можете ли вы опубликовать это как ответ?
3. моя установка anaconda пока совершенно корректна conda.sh в этом конкретном пути не заданы права доступа к исполняемому файлу. Следовательно, используйте
. <conda-base>/etc/profile.d/conda.sh
для принудительного выполнения.
Ответ №1:
conda activate
действительно предназначен для использования в интерактивных настройках (оболочках / командных подсказках). Но вы можете использовать conda run
для выполнения определенного скрипта python в данной среде.
Попробуйте это вместо:
conda run -n <environment> <script_name>
Комментарии:
1. Я получаю
permission denied
2. Я не могу воспроизвести эту ошибку, однако звучит так, как будто у вас уже есть решение, опубликованное @cel