скрипт bash acrivate conda enPython автоматически

#python #bash #conda

#питон #удар #конда

Вопрос:

Я хочу активировать свою среду с помощью скрипта bash. Это мой сценарий:

 #! /bin/bash export SPARK_HOME="/opt/mapr/spark/spark-3.1.2/" source conda activate /home/mapr/miniconda3/envs/envPython  

Что не так в этом сценарии. когда я запускаю эту команду в терминале, она работает правильно. Ожидаемый результат:

 bash scripten #i have to get my envPython conda  

Комментарии:

1. Я не уверен, о чем вы просите — я думаю, было бы полезно, если бы вы предоставили более подробную информацию о том, что вы пытаетесь сделать и что происходит, когда вы пытаетесь это сделать. Но вы, вероятно, не должны ни source подтверждать, ни указывать путь к нему (т. Е. Просто измените эту строку на conda activate envPython ).

2. Я хочу активировать среду pyspark. Когда я получаю доступ к своей виртуальной машине, я должен выполнить две команды на терминале. экспорт SPARK_HOME=»/opt/mapr/spark/spark-3.1.2/» активация исходного кода /главная/mapr/miniconda3/envs/envPython

Ответ №1:

Не совсем уверен, как это сделать чисто, но вот кое-что, что работает для меня

  • chmod x scripten
  • source scripten

Это отлично работает для меня (при активации venv ).


Редактировать

файл сценария

 #!/usr/bin/env bash export PYTHON_HOME="~/test/" source ~/test/venv/bin/activate  

скриншот

  • вверху слева: source scripten вывод
  • слева внизу: содержание test реж.
  • справа: файл сценария

введите описание изображения здесь

Комментарии:

1. Нет, это не работает для меня

2. не могли бы вы дать мне свой сценарий файла, пожалуйста. Я сравню его со своим сценарием @niko

3. Конечно, позвольте мне отредактировать мой пост.

Ответ №2:

Попробуйте изменить свой shebang, чтобы запустить bash в режиме входа в систему, т. Е.,

 #!/usr/bin/env bash -l  

Функция Conda activate -это функция оболочки, загружаемая через файл ресурсов оболочки (например, .bashrc ), поэтому при запуске vanilla bash она не будет определена.