Как выбрать: Macports выбрать python

Когда я вхожу:

port select list python

Это результат:

Available versions for python:
    none
    python25 (active)
    python25-apple
    python26-apple
    python27
    python27-apple

Я думал, что когда я использую python, я буду использовать версию 2.5. Вместо этого, когда я вхожу в "python", версия 2.7 кажется активной. Как изменить это на версию 2.5?

Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Ответ 1

Почему это происходит

MacPorts устанавливает двоичные файлы в /opt/local по умолчанию.

Существует также предустановленный python на вашем Mac. Когда вы просто набираете python, он запустит предустановленную версию python, на которую не влияет установка MacPorts.

Чтобы узнать, какая версия будет выполнена, когда просто введите python, используйте

which python

Для запуска версии порта Mac используйте

/opt/local/bin/python2.5

Решение

Если вы хотите всегда использовать двоичные файлы MacPorts, вы можете изменить свой путь, чтобы /opt/local/bin отображался перед /use/local/bin и т.д.

/opt/local/bin и т.д. добавляются в ~/.tcshrc с помощью MacPorts. Также обязательно посмотрите в ~/.profile и ~/.bash_profile, поскольку они по умолчанию на mac.

Выбор версии в портах

Первый тип port select --list python, чтобы указать установленную версию, а затем, например, sudo port select --set python python27, чтобы выбрать 2.7. Для получения дополнительной информации введите port help select.

Ответ 2

Используйте

osx$ port select --list python

чтобы просмотреть доступные установки Python.

Затем используйте параметр "--set" для "выбора порта", чтобы установить порт, который вы хотите использовать.

osx$ sudo port select --set python python27

Ответ 3

Python устанавливает:

  • По умолчанию (Apple): /usr/local/bin
  • MacPorts: /opt/local/bin
  • python.org: /Library/Frameworks/python...

Для python по умолчанию требуется система, поэтому лучше не вступать в нее слишком много. MacPorts Python удобен в использовании, так как получение пакетов так просто.

Вы можете установить ссылку как ярлык:

sudo ln -s /opt/local/bin/python /usr/local/bin/ppython

Затем из командной строки используйте версию MacPorts:

ppython script.py

Ответ 4

Ваша оболочка, вероятно, кэширует вызов python и больше не смотрит в PATH. Поэтому, когда вы вызывали python до port select в том же сеансе оболочки, вам нужно очистить этот кеш.

Для bash очистите кеш с помощью

hash -r

или просто откройте новое окно терминала.

Ответ 5

Альтернативой является symlinking каждого двоичного кода Jupyter, так что номер версии не отображается:

cd /opt/local/bin
JUPYTER_VERSION=2.7
for a in jupyter*$JUPYTER_VERSION; do sudo ln -s $a $(echo $a | sed -e 's:-'$JUPYTER_VERSION':g'); done