#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 она не будет определена.