Скорее всего, для запуска вашего скрипта запускается системный Python (/usr/bin/python
), а не MacPorts Python (/opt/local/bin/python2.6
), на котором установлена appscript
. Что должно работать (не проверено!), Это вставить путь MacPorts Python в качестве первого Program Argument
перед путем к сценарию. И в этом случае вам не нужно указывать PYTHONPATH
. Теоретически, вы можете сделать то, что у вас есть, до тех пор, пока MacPorts Python был настроен совместимым образом (т. Е. Схожие арки, цели развертывания и т. Д.) С системным Python, но вам, вероятно, не нужно или не нужно идти по этому пути. .
Другой подход заключается в том, чтобы изменить строку shebang (первую строку) сценария на путь экспликации к Python MacPorts:
#!/opt/local/bin/python2.6
Причина, по которой это работает в оболочке командной строки, заключается в том, что один из ваших файлов профиля оболочки, например, .bash_profile
, изменяет переменную среды PATH
, чтобы сначала включить путь к MacPorts Python (/opt/local/bin
), чтобы /usr/bin/env python
сначала находит MacPython python
. При запуске через launchd
оболочка не включается, поэтому манипуляция PATH
не происходит; только пути по умолчанию ищутся, что означает /usr/bin/env python
выполняет /usr/bin/python
.