25

Недавно я обновил установку Mac OS X 10.5 Leopard до версии 10.6 Snow Leopard, и вместе с этим появилась обновленная версия Python 2.6.1 (вместо 2.5.1). Теперь, когда я python в терминале, я все равно получаю

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Я заглянул в /usr/bin/ и обнаружил, что для получения Python 2.6 мне нужно набрать python2.6 .

Вопрос в том, как мне сделать отображение команды python на Python 2.6?

5 ответов5

21

Это просто:

defaults write com.apple.versioner.python Version 2.6

Смотрите man python для полного объяснения от Apple.

Кроме того, одна ошибка: убедитесь, что вы используете Python, который поставляется вместе с вашим компьютером, а не какой-то другой, который вы установили. Сделайте это, набрав, which python в командной строке. Он должен указывать на /usr/bin/python . Я упоминаю об этом только потому, что по умолчанию в Snow Snow Leopard установлено значение 2.6 (когда я использовал Leopard, он был равен 2.5). Поэтому тот факт, что вы получаете 2,5, может указывать на то, что на вашем пути есть что-то еще.

Обновить

Чтобы ответить на комментарии ниже:

Это не делает то, что люди просят.

Это для меня, в OS X 10.8.2. После выполнения defaults write com.apple.versioner.python Version 2.6 , версия Python по умолчанию действительно 2.6. (И аналогично после перехода на 2.7.)

Это верно, независимо от того, запускаю ли я python напрямую или использую исполняемый скрипт, начинающийся с #!/usr/bin/env python получаю ожидаемую версию Python.

Это не решает символическую ссылку в /System/Library/Frameworks/Python.framework/Versions, где Current указывает на 2.7, что может вызвать проблемы (потому что оно все еще находится в sys.path с 2.6!)

Действительно, это не исправляет эту символическую ссылку.

Тем не менее, запустите короткий скрипт, который print() sys.path и (по крайней мере, в моей относительно стандартной установке) директории библиотеки 2.6 находятся по пути, а каталоги 2.7 не по пути. Не находится и Current каталог с символическими ссылками в пути. Так что это не должно быть проблемой для большинства скриптов.

Тем не менее, возможно - еще не проверялось - Current символическая ссылка используется либо easy_install либо pip . Это может вызвать проблемы. Это действительно кажется ошибкой, что символическая ссылка не обновляется при обновлении версии Python.

12

Я бы предложил использовать порты Mac ...

Существует пакет с именем python_select, который позволяет использовать питоны параллельно. Поэтому сначала установите порты Mac, если они еще не установлены.

Сначала установите пакет python_select:

sudo port install python_select

Уже сейчас вы можете проверить, какие дистрибутивы Python доступны в вашей системе. Просто введите команду:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

В моем случае он напечатал как минимум версию Python, которая поставляется по умолчанию со Snow Leopard: python26-apple .

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

показывает текущую выбранную версию, например, python26-apple . Итак, вы видите, этот пакет прекрасно работает с Mac. Для большего количества вариантов выпуска

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

Затем вы можете найти доступную версию Python в репозитории портов:

port search python

Это даст длинный список доступных питонов.

Чтобы установить нужные пакеты, например, python 2.4, выполните:

sudo port install python24

Теперь python_select -s покажет только что установленный python. Чтобы переключиться на выпуск Python 2.4:

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

Эта команда является постоянной между оболочками.

5

Предполагая, что вы используете bash, введите:

% type -a python

Это покажет вам все исполняемые файлы "python", псевдонимы, встроенные функции оболочки (скорее всего, нет) или функции bash в вашем PATH.

Это должно помочь вам лучше определить, что здесь происходит.

3

Вы хотите создать символическую ссылку на нужную версию.

cd /Library/Frameworks/Python.framework/Versions 
sudo rm Current 
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

Это удаляет текущий указатель на вашу версию Python по умолчанию и устанавливает его на версию 2.6.

0

Не идеально (IMO), но это исправило все приложения, ищущие python в моем /usr/local/bin/ .

sudo cp /usr/local/bin/python3 /usr/local/bin/python

Конечно, после установки последней версии Python.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .