Applescript использует неправильную версию Python, как изменить? - PullRequest
1 голос
/ 18 июня 2010

Я недавно установил python 2.6.5 поверх 2.6.1 в OS X. Все работает нормально, за исключением случаев, когда я пытаюсь выполнить сценарии python через редактор Applescript.Если я выполняю следующую строку, я получаю версию 2.6.1:

Applescript:

do shell script "python -c \"from sys import version; print version\""

Но если я выполняю аналогичную строку в терминале OS X, я получаю версию 2.6.5:

Терминал OS X:

python -c "from sys import version; print version"

Что может быть не так?Можно ли это как-то легко исправить?

Ответы [ 3 ]

1 голос
/ 19 июня 2010

Я не буду рекомендовать перезаписывать установленный системой python (или любые другие команды UNIX), потому что некоторые системные приложения могут зависеть от особенностей конкретной установленной версии python.

В наши дни вполне обычно устанавливать другую отдельную копию python (или perl или ruby) по совершенно другому пути.Затем вы устанавливаете путь соответствующим образом в .profile и т. Д. В случае bash, чтобы в командной строке python вы установили.

Но обратите внимание, что приложение GUI наследует переменные среды отсистема и не читайте .profile или что-то еще.Есть способ изменить переменную среды PATH, видимую в приложениях с графическим интерфейсом (см. здесь ), но я не рекомендую это.

Где вы установили python 2.6.5?Скажем, это в

/usr/local/bin/python

Тогда в вашем коде AppleScript вы можете просто сказать

do shell script "/usr/local/bin/python  -c ... ." 
0 голосов
/ 04 апреля 2011

Установка Mac по умолчанию помещает python в / usr / bin , установщик python помещает его в каркас с ссылками sym в / usr / local / bin .Просто удалите старую версию в / usr / bin и создайте новые ссылки sym

ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python /usr/bin/python
0 голосов
/ 19 июня 2010

Установщик Python 2.6.5 изменяет ваш файл ~/.bash_profile, чтобы поместить каталог bin в Python 2.6.5 в начало вашего $PATH, перед /usr/bin, где находится интерпретатор Python по умолчанию для операционной системы.Этот профиль автоматически читается при входе через Терминал, но не при использовании do shell script.Вам нужно либо указать полный путь к исполняемому файлу python, который вы хотите (возможно, лучший вариант), либо вы могли бы заранее разрешить вашему сценарию прочитать профиль bash (хотя учтите, что do shell script использует sh, а не bash):

do shell script ". ${HOME}/.bash_profile; python -c 'import sys; print(sys.version)'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...