Как правильно обновить Python на Mac OS X

Как правильно обновить Python на Mac OS X

Если я скачаю python с сайта Python и попытаюсь установить его с помощью установщика, он установится, но мне нужно будет указать, что я хочу новую версию Python, когда я запускаю свои программы из терминала. Если я просто введу:

python app.py

Работает со старой версией.

Как установить новую версию в качестве версии по умолчанию?

решение1

Я наконец нашел, как это сделать. Установщик создал папку python 2.6 в /Application. В этой папке находится скрипт Update Shell Profile.command, мне просто нужно было его выполнить, и теперь он работает.

решение2

Два вопроса:

  1. Где был установлен новый Python?
  2. Как выглядит ваш $PATH?

По умолчанию в Unix-подобных системах программное обеспечение, устанавливаемое пользователем, устанавливается в /usr/local/bin, и большинство дистрибутивов *nix помещают этот каталогдосистемные каталоги в переменной $PATH по умолчанию (именно так ваша оболочка знает, где искать программы). Таким образом, если вы устанавливаете что-то новое, новый элемент будет найден первым.

Однако значение $PATH по умолчанию в OS X выглядит следующим образом:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Проблема в том, что, поместив/usr/local/binтак поздно, общесистемный Python (который находится на/usr/binи поэтому ранее в вашем $PATH) постоянно происходит сбой.

Мой ответ — сделать так, чтобы $PATH на Mac выглядел следующим образом:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Для этого создайте файл.профильв вашем домашнем каталоге и добавьте что-то вроде этого:

#### Let's take care of our $PATH
# A backup of the original $PATH
# /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

# My preferred order - /usr/local goes first, damn it!
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Редактировать: Я продолжу здесь, а не в комментариях, потому что это становится слишком длинным для комментария. Строка в вашем.профильс /sw/bin/init.shисходит от менеджера пакетовФинк, который, как я предполагаю, вы используете (или использовали в какой-то момент). Другая строка, похоже, предполагает, что в какой-то момент вы установили MacPython, и он переписал ваш $PATHдля вас. Я не знаю MacPython, но если этоэтот сайт, то он не обновлялся с 2004 года. Также, похоже, там не говорится о какой-либо версии OS X после 10.3, которая не является самой последней.

Теперь я еще больше запутался: когда вы обновили Python? Как вы его обновили? Какую версию OS X вы используете?

решение3

Узнайте, где живет питон:

$ which python
/usr/bin/python

Проверьте, является ли это символической ссылкой:

$ ls -Fal /usr/bin/python
lrwxr-xr-x  1 root wheel  72 May 19 12:02 /usr/bin/python@ -> ../../System/Library/Frameworks/Python.framework/Versions/2.5/bin/python

Если это так, свяжите /usr/bin/python с новым python:

$ sudo ln -s (new python, maybe /System/Library/Frameworks/Python.framework/Versions/2.x/bin/python) /usr/bin/python

Проверьте, работает ли это:

$ python --version
Python 2.xxx

Связанный контент