
Если я скачаю python с сайта Python и попытаюсь установить его с помощью установщика, он установится, но мне нужно будет указать, что я хочу новую версию Python, когда я запускаю свои программы из терминала. Если я просто введу:
python app.py
Работает со старой версией.
Как установить новую версию в качестве версии по умолчанию?
решение1
Я наконец нашел, как это сделать. Установщик создал папку python 2.6 в /Application. В этой папке находится скрипт Update Shell Profile.command, мне просто нужно было его выполнить, и теперь он работает.
решение2
Два вопроса:
- Где был установлен новый Python?
- Как выглядит ваш $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