Запустить скрипт Python с Automator // почему он работает, только если я включил экспорт PATH = / usr / local / bin: $ PATH и что это значит? - PullRequest
0 голосов
/ 10 ноября 2019

Я пытался запустить скрипт Python с помощью Mac Automator, и команда очень прямолинейна:

"cd / Users / myname / Desktop / project && python3 myprojectapp.py".

Однако каждый раз, когда я пытался запустить его, Automator выдавал ошибку, такую ​​как ModuleNotFoundError . Это было, однако, невозможно, поскольку у меня были установлены все библиотеки (например, Pandas), и команда, запущенная в Терминале, как написано выше, работала безупречно.

Теперь я где-то читал о подобной проблеме, чтобы просто включить: "export PATH = / usr / local / bin: $ PATH" перед командой, и она заработала. Теперь, прежде чем я продолжу свою жизнь, я хотел бы понять, что именно делает эта дополнительная строка и как она влияет на Automator до такой степени, что сценарий работает.

Заранее спасибо!

1 Ответ

1 голос
/ 10 ноября 2019

Эта команда в основном изменяет переменную среды PATH и помещает каталог /usr/local/bin перед всем, что в данный момент находится в PATH. Однако эта команда является временной, и переменная окружения PATH восстанавливается после закрытия сеанса.

То, что может произойти, это то, что python, который вы запускаете в терминале, и python Automator, работают по-другому. /usr/local/binвероятно, содержит ту же версию Python, которую вы используете в терминале. Посмотрите на ~/.bash_profile, чтобы увидеть, есть ли там что-то похожее на export PATH=/usr/local/bin:$PATH.

Другой способ проверить - набрать which python в обоих и посмотреть, указывает ли это на один и тот же питон. Возможно, у вас есть еще один python где-то в списке каталогов в вашей переменной * 1012.

Обычно используют виртуальные среды python, чтобы отслеживать, какой Python работает, и экспериментировать с python, не связываясь с системным python. ,Примеры этого включают: Анаконда и virtualenv .

...