Использование сторонних модулей с Python в службе Automator - PullRequest
2 голосов
/ 19 января 2010

Я установил Py-Appscript на свой компьютер, и его можно использовать с установкой Python на /Library/Frameworks/Python.framework/Versions/Current/bin/python.

Я пытаюсь использовать эту установку Py-Appscript со службой Automator. Для этого я использую действие Run Shell Script , а затем устанавливаю Shell на usr/bin/python (к сожалению, мой единственный выбор для Python).

usr/bin/python не имеет доступа к моим сторонним модулям и вылетает на линии:

from appscript import *

Есть ли способ предоставить мне usr/bin/python доступ к моим сторонним модулям? ИЛИ ЖЕ Есть ли способ сказать Automator использовать /Library/Frameworks/Python.framework/Versions/Current/bin/python вместо этого?

Мне нужен Automator для запуска Python напрямую из действия Run Shell Script . Любое действие, которое вызывает скрипты Python, внешние по отношению к Automator (например, через bin/bash), не выполняется достаточно быстро, чтобы быть полезным.

Ответы [ 2 ]

3 голосов
/ 19 января 2010

Хорошо, я смог заставить его работать, используя хак, найденный на Как мне выполнить скрипт оболочки PHP как действие Automator на Mac OS X .

Внутри Запуск сценария оболочки , я использовал оболочку /bin/sh/ с <<EOF ... EOF для правильной установки Python.

Например, введя

/Library/Frameworks/Python.framework/Versions/Current/bin/python <<EOF
from appscript import *
Numbers = app('Numbers')
EOF

В раздел кода действия Run Shell Script будет работать.Таким образом, можно вызвать правильную установку (/Library/Frameworks/Python.framework/Versions/Current/bin/python выше) и поместить их программу между <<EOF ... EOF делитерами.

Альфред

Этот прием также работает с Альфредом.Если вы хотите использовать appscript с Альфредом, просто убедитесь, что вы передаете {query} вышеприведенной версии Python, например:

/Library/Frameworks/Python.framework/Versions/Current/bin/python script.py {query}
0 голосов
/ 19 января 2010

Когда вы устанавливаете модули, вы обычно устанавливаете их для каждого экземпляра Python. Так что в этом случае вы установили их для Python в /Library/Frameworks/Python.framework/Versions/Current/bin/python, и тогда они будут доступны только для этого Python. / usr / bin / python, очевидно, является еще одной установкой Python (я не эксперт по OS X).

Чтобы сделать его доступным для установки / usr / bin / python, установите его для /usr/bin/python.

...