Как я могу сделать python 2.6 по умолчанию в Mac OS X Lion?

Я только что обновился до Lion, и вместе с ним появился Python 2.7. Мне нужно использовать 2.6 в качестве Python по умолчанию, поскольку проект, над которым я в основном работаю, использует 2.6.


person mikec    schedule 09.08.2011    source источник
comment
вы думаете об использовании virtualenv?!   -  person Arthur Neves    schedule 09.08.2011
comment
Может здесь что-то получится? superuser.com/questions/35256/   -  person dcpomero    schedule 09.08.2011


Ответы (3)


Apple предоставила два очень простых способа изменить python по умолчанию в OS X 10.6 Snow Leopard и 10.7 Lion. Все это подробно описано на справочной странице Apple для python (1):

$ man python
$ which python
/usr/bin/python
$ python -V
Python 2.7.1
#
# temporarily change version
#
$ export VERSIONER_PYTHON_VERSION=2.6
$ python -V
Python 2.6.6
$ unset VERSIONER_PYTHON_VERSION
$ python -V
Python 2.7.1
#
# persistently change version
#
$ defaults write com.apple.versioner.python Version 2.6
$ python -V
Python 2.6.6
person Ned Deily    schedule 09.08.2011
comment
Это правильный ответ, ОП должен изменить выбранное решение. - person Pedro; 17.08.2011
comment
Обратите внимание, что вам нужно использовать значения по умолчанию, напишите com.apple.versioner.python Version 2.6, если вы устанавливаете и требуете Python 2.6. В противном случае пакет python будет помещен в пакеты сайта версии 2.7. - person timbo; 22.09.2011
comment
@Timbo: я не понимаю твоего комментария. - person Ned Deily; 22.09.2011
comment
Я попробовал это на компьютере с OS X 10.7.5. Строка VERSIONER не отображается в выводе man 1 python. Если я попробую шаги в ответе, я получу 2.4.3. Должны ли мы обновить ответ? - person D A Vincent; 04.01.2014
comment
Он по-прежнему действителен для OS X 10.9.1. Вы уверены, что справочная страница, на которую вы смотрели, была не из сторонней установки Python, а не из Apple? Попробуйте man --path python. Должно быть /usr/share/man/man1/python.1 - person Ned Deily; 04.01.2014
comment
Интересно. Вывод man --path python этого компьютера равен /Library/Frameworks/Python.framework/Versions/Current/man/man1/python.1 Это точно Apple? Однако есть /usr/share/man/man1/python.1.gz. И в этом файле (un-gzip'd) действительно упоминается VERSIONER. Я проверил и действительно MacPorts присутствует. Порты python27 и python_select активны, поэтому, возможно, он перепутал путь поиска man. - person D A Vincent; 06.01.2014
comment
Нет, /System/Library/Frameworks/Python.framework — это расположение системных Python, поставляемых Apple, в OS X. /Library/Frameworks/Python.framework — это место, где установлены сторонние фреймворки, такие как python.org. MacPorts Pythons по умолчанию установлены в другом месте, /opt/local/Library/Frameworks/Python.framework. - person Ned Deily; 06.01.2014

После выполнения следующего:

defaults write com.apple.versioner.python Version 2.6

Чтобы убедиться, что пакеты, которые вы устанавливаете с помощью «sudo», установлены для правильной версии Python, также установите параметр управления версиями в качестве суперпользователя:

sudo su
# Enter password
defaults write com.apple.versioner.python Version 2.6
exit
person tarequeh    schedule 13.11.2011

У вас есть несколько вариантов:

  1. Заменить /usr/bin/python на ссылку на /usr/bin/python2.6
  2. Поместите /System/Library/Frameworks/Python.framework/Versions/2.6/bin в свой путь перед /usr/bin
  3. Явно скажите своим скриптам использовать /usr/bin/python2.6
person John Percival Hackworth    schedule 09.08.2011
comment
Не используйте вариант 1 по причинам, указанным в другом ответе. Это не символическая ссылка на OS X. - person Ned Deily; 09.08.2011
comment
2 и 3 будут работать и не разрушат, но, как отмечено в другом ответе, Apple предлагает гораздо более простой способ сделать это. - person Ned Deily; 09.08.2011