Как я могу изменить версию Python по умолчанию на Snow Leopard?

79257
SBSTN

Недавно я обновил установку 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?

25

5 ответов на вопрос

21
Nate

Это просто:

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.

Ты был прав. Я давно установил MacPython, и он облажался с моей переменной PATH, поэтому `python` указывал на` / Library / Frameworks / Python.framework / Versions / Current / bin`. Естественно, это не было обновлено до 2.6. Поэтому я заменил переменную PATH на стандартную, найденную в Google, и теперь удаляю MacPython из моей системы. SBSTN 14 лет назад 3
@SBSTN У меня та же проблема (путь к Python, указывающий на `/ Library / Frameworks / Python.framework / Versions / Current / bin`) Как мне это изменить? Zach 13 лет назад 0
Не работает с Xcode4, так как больше нет / Library / Frameworks / Python *, и / usr / bin / python нигде не указывает. Есть идеи? MacPorts был бы решением, но я не хочу его устанавливать. Alex 12 лет назад 0
Я установил Xcode 4, и он все еще работает, как описано. `/ usr / bin / python` - это исполняемый файл, а не ссылка. `/ usr / bin / python2.6` - это ссылка, которая указывает на` ../../ System / Library / Frameworks / Python.framework / Versions / 2.6 / bin / python2.6`. Учитывая, что исполняемый файл Python находится в `/ System / Library`, он должен быть доступен независимо от того, установлена ​​ли / какая версия Xcode. Nate 12 лет назад 0
Это не делает то, что люди просят. Не уверен, почему это ответ. 010110110101 12 лет назад 0
Это не решает символическую ссылку в `/ System / Library / Frameworks / Python.framework / Versions`, где` Current` указывает на `2.7`, что может вызвать проблемы (потому что он все еще находится в` sys.path` с 2.6!) Stan 11 лет назад 0
@Stan: В моей системе `Current` * не * в` sys.path` при стандартной установке 10.8. Nate 11 лет назад 0
12
ovanes

Я бы предложил использовать порты 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) 

В моем случае это напечатано, по крайней мере версия питона, который поставляется по умолчанию с 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 2.4:

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

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

5
Doug Harris

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

% type -a python 

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

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

3
curious

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

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

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

Это похоже на то, что я сделал. Но вместо этого я поместил ссылку в / usr / bin и назвал ее «python» (переопределяя старый исполняемый файл «python», который Apple там поместил). Итак: `sudo ln -s /path/to/2.7 / usr / bin / python`. Это то, как это делается в Linux, и это имеет смысл. Nacht 11 лет назад 1
0
AGDM

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

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

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

это действительно плохая идея. Использование symlink можно понять, но копирование двоичных файлов туда и обратно НЕ является хорошей идеей. Jakuje 8 лет назад 0
Понятно, я просто хочу набрать python в терминале и указать ему Python3.x ... не слишком поздно, чтобы исправить это должным образом. AGDM 8 лет назад 0

Похожие вопросы