Подтвердить что ты не робот

Использование Python 3.1 с TextMate

TextMate, похоже, использует встроенную версию Python, которую я предполагаю (sys.path не работает). Как настроить его вместо 3.1? Я уже установил пакет 3.1, и я могу использовать IDLE для интерактивных сеансов, но теперь мне нужно использовать TextMate.

Спасибо

4b9b3361

Ответ 1

TextMate использует значение переменной TM_PYTHON, чтобы найти путь к интерпретатору Python. Хорошим решением является использование возможности TextMate для определения переменных типа TM_PYTHON для каждого проекта:

  • Откройте новый или существующий проект TextMate (File -> New Project или File -> Open)

  • Отмените выбор любого файла на боковой панели списка проектов.

  • Нажмите на значок Get Info (i) на боковой панели. Появится панель Project Information.

  • Нажмите +, чтобы добавить новую переменную.

  • Введите TM_PYTHON в поле Variable и полный путь к нужному питону в поле Value (например, /usr/local/bin/python3.1).

  • Закройте окно "Информация" и сохраните проект (FileSave Project As).

Затем вы можете добавлять файлы по мере необходимости в проект, и они будут выполняться под выбранным питоном с помощью пакета TextMate Python Run Script. Возможно, вы захотите сохранить проект Python 3, например, для запуска сценариев ad-hoc под Python 3. Для больших проектов вам все равно потребуется создать для него отдельный проект TextMate.

Чтобы изменить версию Python, используемую глобально в TextMate:

  • В строке меню TextMate откройте TextMatePreferences

  • щелкните на панели Advanced

  • нажмите вкладку Shell Variable

  • нажмите +, чтобы добавить новую переменную

  • введите TM_PYTHON в поле Variable и полный путь к питону в поле Value (возможно /usr/local/bin/python3.1)

Как указывает Алекс, вы можете нарушить другие функции TextMate, изменив версию Python глобально, поэтому изменение в каждом проекте, вероятно, является лучшим решением.

UPDATE (2010-10-31):

Существует другой подход, который может быть проще использовать для некоторых проектов. Команда Run в пакете TextMate Python выглядит как строка shebang в исполняемом файле. Таким образом, вместо изменения TM_PYTHON вы можете указать путь к интерпретатору, который будет использоваться, включая первую строку следующим образом:

#!/usr/local/bin/python3.1

# sample code to show version
import sys
print(sys.version_info)

Во многих случаях вы бы предпочли не переуступать абсолютный путь, а управлять использованием обычной переменной среды оболочки PATH. Традиционно /usr/bin/env используется для этой цели. Однако, работая под TextMate, ваши файлы профиля оболочки обычно не используются, поэтому любые изменения в PATH не отображаются там, включая, возможно, /usr/local/bin или /opt/local/bin или везде, где находится желаемая команда python3. Чтобы обойти это, вы можете добавить или изменить глобальную переменную оболочки PATH в TextMatePreferences (см. Выше) со значением, скажем, /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin. Затем вы можете использовать более общую строку shebang следующим образом:

#!/usr/bin/env python3

(Все это, похоже, работает с последней версией vanilla TextMate и ее пакетом Python: никаких гарантий относительно более ранних версий или других пакетов Python.)

Ответ 2

Поздно к вечеринке, извините! Полагаю, вы хотите запустить script с помощью встроенного интерпретатора TextMate? Я нашел самое простое решение - добавить shebang, который работает очень хорошо;

#!/usr/bin/env python3

для python 3.1 или;

#!/usr/bin/env python

для системного python по умолчанию, хотя последнее является излишним для упражнения.

Ответ 3

В соответствии с этот длинный поток (который был о Python 3.0 и версии TextMate, существующей в прошлом spring), но я считаю, что это все еще действительный для Python 3.1 и сегодня TextMate), вы можете сделать это (например, с помощью ответа @Ned), но как только вы сделаете много команд TextMate, вы можете сломаться (потому что они написаны для использования Python 2, а Python 3 не обратный совместимый с Python 2 - например, использование reload, которое исчезло в Python 3, неоднократно упоминается в потоке). Тем не менее, это может сработать, если вы не используете или не нуждаетесь в значительной части функций TextMate (например, набор верстки LaTeX упоминался как нечто, что полностью ломается, когда вы создаете TextMate для использования Python 3 вместо Python 2).

Ответ 4

shebang - лучшее решение, чтобы увидеть, где установлен тип python 3 в терминале:

который python3

вы получите что-то вроде этого:

/USR/локальные/бен/python3

Если ничего не появилось, сначала установите python3

и в верхней части вкладки script:

#!/USR/локальные/бен/python3