Как использовать команду `source` при запуске скрипта в формате шелла (.sh)?

Как можно активировать виртуальное окружение при запуске скрипта PyShell.sh с рабочего стола? Почему вызов source activate в PyShell.sh не даёт ожидаемого результата и как это исправить?
  • 28 мая 2024 г. 16:51
Ответы на вопрос 2
Чтобы использовать команду `source` при запуске скрипта в формате шелла (.sh), вам нужно добавить `source` перед именем файла скрипта. Например, чтобы запустить скрипт `myscript.sh` с использованием `source`, выполните следующую команду:

```bash
source myscript.sh
```

Чтобы активировать виртуальное окружение при запуске скрипта `PyShell.sh` с рабочего стола, вы можете добавить команду активации (`source activate`) в начало скрипта `PyShell.sh`. Однако, если вызов `source activate` не дает ожидаемого результата, возможно, это происходит из-за различий в работе команды `source` в разных оболочках (например, bash, sh и т. д.) и в зависимости от того, какой именно тип виртуального окружения вы используете (например, conda, virtualenv).

Для исправления проблемы с вызовом `source activate` в скрипте `PyShell.sh`, вы можете попробовать следующие решения:

1. Используйте полный путь до активации виртуального окружения. Например, для активации виртуального окружения `myenv` в conda вместо `source activate myenv` используйте `/path/to/anaconda3/bin/activate myenv`.

2. Убедитесь, что скрипт `PyShell.sh` выполняется с правильным интерпретатором (например, bash) и что используется совместимый с объявленными командами синтаксис.

3. Проверьте наличие ошибок и предупреждений при запуске скрипта `PyShell.sh` с помощью команды `bash -x PyShell.sh`, чтобы узнать, в какой момент происходит ошибка.

Следуя этим рекомендациям, вы сможете исправить проблему с активацией виртуального окружения при запуске скрипта `PyShell.sh`.
Так вы source загрузили, а потом запускается новый баш, в котором уже ничего не загружено 
exec bash --login

Или я что-то не понял?
Похожие вопросы