Безопасно ли заменять интерпретатор Python по умолчанию для MacOS X? - PullRequest
4 голосов
/ 16 сентября 2010

У меня установлен Python 2.6.1 по умолчанию, установленный как /usr/bin/python, а Python 3.1.2 установлен в /usr/local/bin/python3.1. Учитывая, что я использую только синтаксис 3.x, безопасно ли заменить интерпретатор по умолчанию (2.6) на интерпретатор 3.1 (включая python-config), используя символические ссылки (и удаляя старый двоичный файл Python)? Или система использует версию 2.x для какой-то цели, которую я не знаю?

Ответы [ 3 ]

8 голосов
/ 16 сентября 2010

Если вы используете только Python 3, начните свои сценарии с:

#! /usr/bin/env python3.1

И вы будете использовать правильную версию, не думая о системе.

edit:Кстати, эта идея предложена в документации по Python.Каждый скрипт будет работать на той версии Python, от которой он зависит.Поскольку Python 3 не имеет обратной совместимости, кажется опасным заменять исполняемый файл Python на тот, который будет нарушать сценарии, на которые могут положиться другие утилиты.

2 голосов
/ 16 сентября 2010

Вы не можете безопасно заменить систему, поставляемую Python.Я не могу найти для вас справочную информацию по Mac ... но некоторые последние версии Python не имеют обратной совместимости ... Многие сценарии, зависящие от более старой версии Python, не будут работать на обновленном Python.OS X поставляется с предустановленным Python, потому что он имеет зависимости от него.

Попробуйте использовать VirtualEnv .

Обновление: только что натолкнулся python-select от macports, которые могут решить вашу проблему.

1 голос
/ 16 сентября 2010

Не заменяйте и не удаляйте никакие двоичные файлы, если только вы не остро нуждаетесь в хранилище. И в этом случае пробег для их удаления очень мал.

Вы можете просто сделать 3.1 по умолчанию с помощью:

defaults write com.apple.versioner.python Version 3.1

Существуют и другие способы обеспечения использования 3.1 по умолчанию, хотя я не использовал их.

export VERSIONER_PYTHON_VERSION=3.1
...