2017-01-09 3 views
2

Я пытаюсь использовать Automator для macOS 10.12 для запуска сценария Python 3. Сценарий отлично работает, когда я запускаю его с терминала с помощью команды: python3 my_script.py.python3 не запускается из сценария оболочки Mac

У Automator есть функция «Run Shell Script», которая использует оболочку/bin/bash. Оболочка будет запускать скрипты с помощью команды: python my_script.py, но это, похоже, работает только для скриптов, написанных на Python 2.7.

Мой сценарий начинается с #!/usr/bin/env python3, который, как я думал, направит оболочку на правильный интерпретатор python, но это, похоже, не так.

Как обходной путь, я могу запустить скрипт, если я вставляю полный путь к интерпретатору python: /Library/Frameworks/Python.framework/Versions/3.5/bin/python3, но я считаю это субоптимальным, потому что команды могут не работать, если/когда я обновляюсь до Python 3.6.

Есть ли лучший способ направить оболочку/bin/bash для запуска скриптов Python3?

+0

Вы сделали исполняемый файл сценария? Если вы запустите 'chmod + x my_script.py', ваш скрипт будет исполняемым, тогда вы можете просто запустить'./My_script.py', не нуждаясь в 'python3 my_script.py' –

+0

Я запустил' chmod + x', но он didn ' t помочь. Разрешения: '-rwxr-xr-x'. – Slipup

+0

Если вы запустите 'which python3', он должен сказать вам правильный путь для вашего shebang. –

ответ

2

Поскольку у вас есть притон линию, вы можете сделать ./my_script.py и он должен работать с Python 3.

+1

Чтобы выяснить, почему это работает: при запуске скрипта с 'python my_script.py' команда' python' явно переопределяет shebang. Запуск скрипта * без указания того, какой интерпретатор использовать * (например, с помощью только './My_script.py'), ОС смотрит на shebang, чтобы выяснить, какой интерпретатор использовать. –

+0

Спасибо за это предложение. Я побежал без использования команды 'python', и теперь получим ошибку:' env: python3: Нет такого файла или каталога', но это не имеет смысла для меня, потому что в терминале, когда я запускаю 'which python3', я get '/ Library/Frameworks/Python.framework/Версии/3.5/bin/python3'. Спасибо за помощь! – Slipup

-1

Man. Я манекен на Mac, но я стараюсь использовать Python 3.4 на первом месте. Это самая стабильная версия Python 3. В противном случае ваш «обходной путь» - это правильный способ получить его (путь).

Смежные вопросы