Как я могу обновить установку Python по умолчанию / исправить мою $ PATH в Mac OS X 10.6.7?

8

Я знаю, что этот вопрос уже задавался ранее на этом сайте, и я нашел пару достойных обсуждений, но решения, которые я нашел и попробовал, не работают. Я хочу изучать Python, и у меня возникают проблемы с его правильной настройкой на моем Mac. Я использую OS X 10.6.7.

Я скачал установщик Python 3.2 с python.org и установил его, который установил на /Library/Frameworks/Python.framework/Versions/3.2/bin. Пока это нормально, так как я могу просто использовать IDLE для разработки. Чтобы использовать 3.2 из командной строки, pythonя попытался изменить порядок $PATHпеременных. Вот как это ~/.profileвыглядит:

PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin

Тем не менее, pythonвсе еще запускает 2.6.1:

steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ . ./.profile
steven-macbook:~ steven$ python --version
Python 2.6.1
steven-macbook:~ steven$ 

Поработав с этим некоторое время, я решил просто удалить 3.2 и попробовать обновить системную установку Python. Я не уверен, как правильно это сделать, поэтому мне нужно либо заставить 3.2 работать с командной строкой, либо обновить 2.6.1.

Стивен Зезулак
источник

Ответы:

5

Я только что решил эту проблему, установив Python 3.2.2 на мой Mac OS X Lion, поэтому я решил опубликовать, как я это сделал, в надежде, что кто-то найдет это полезным.

Во-первых, я согласен с shadesandcolour в том, что вам не следует изменять копию python по умолчанию, поставляемую с вашим mac, потому что могут быть скрипты, которые могут не работать должным образом при запуске с использованием интерпретатора Python 3.0+. Сказав это, чтобы установить этот последний Python (3.2.2 на момент публикации), вы должны сначала загрузить установщик Python с официального сайта. Установите в соответствии с нормой. Запустите файл «Update Shell Profile.command» в папке / Applications / Python (ver).

После установки python вам нужно отредактировать ваш путь, набрав «sudo nano / etc / paths» в командной строке. Затем введите ваш пароль, когда будет предложено. Далее просто «обрежьте» строку «/ usr / local / bin» и «вставьте» ее ДО появления «/ usr / bin». Сохраните файл, закройте все открытые терминалы и запустите новый экземпляр терминала. Теперь, когда вы наберете «python» в командной строке, оболочка будет сначала искать в / usr / local / bin и запускать последнюю версию python.

lightalchemist
источник
+1, так как я пытался понять это весь день. Действительно, на Snow Leopard, если настройка PATH в конфигурации вашей оболочки не работает, редактирование, /etc/pathкак вы предлагали, работает отлично. Для меня проблема заключалась в том, чтобы заставить как графический, так и терминальный emacs распознать, что я хотел использовать пользовательскую установку Python. Спасибо за совет!
jrhorn424
это работает , если я cd /usr/local/binи cp python3.7 pythonи перезапустить мой терминал.
openwonk
1

Исходя из моего опыта, использование символических ссылок вместе с правильно упорядоченным PATH - это способ сосуществования нескольких версий Python в OS X или любом другом nix, который я могу придумать. OS X немного туповата, но работает так же.

Сначала получите полную картину, выполнив следующие команды:

which python

Затем:

ls -la /usr/bin/python*

и сравните с:

ls -la /usr/local/bin/python*

Посмотрите, куда указывают символические ссылки.

На основании ПУТИ, который вы опубликовали, поскольку / usr / bin следует за / usr / local / bin и другими, которые вы, вероятно, используете интерпретатор System python:

/usr/bin/python

Если вы установили python3.0, он, вероятно, будет работать как:

/usr/local/bin/python

Теперь, когда вы знаете, на что указывает и какой интерпретатор загружается из PATH, вы можете внести соответствующие изменения в PATH и / или символические ссылки. Затем вы можете использовать те же методы, чтобы подтвердить правильные изменения.

Для получения более подробной информации об установке Python на macOS смотрите погружение в python3 и farmdev .

Somantra
источник
/usr/local/bin/pythonне существует, но /usr/local/bin/python3существует python3 --versionдает мою установку (3.2). Могу ли я просто переименовать эту символическую ссылку, pythonчтобы мне не нужно было вводить 3?
Стивен Зезулак
Если ваш PATH упорядочен правильно (/ usr / local / bin идет после / usr / bin), то вы можете просто создать символическую ссылку, которая делает это.
Сомантра
1
Но если / usr / bin идет после / usr / local / bin, он продолжит загружать системный питон (/ usr / bin / python).
Сомантра
0

Возможно, если вы установите Python через MacPorts, он обновит версию системы. Я на самом деле не подозреваю, потому что это кажется мне рискованным. Но вы можете проверить, что делает MacPorts при установке Python вместе с ним.

Джеймс Т Снелл
источник
0

Я задавал этот вопрос кому-то раньше, и мне не рекомендовали менять версию Python по умолчанию, потому что часть операционной системы может зависеть от того, где находится версия 2.7. Тем не менее, это не так много работы, чтобы поместить команду python3 на вашем пути. Это то, что я делаю в данный момент, и это выглядит нормально.

bringel
источник
0

Если вы использовали установщик, ваш python находится в / usr / local / bin / python3. Пути также должны обновляться автоматически, чтобы стать доступными, как python3в вашем терминале. Старый pythonпо-прежнему доступен и может использоваться другими системами.

Деление на ноль
источник