Переключить дистрибутивы Python - PullRequest
1 голос
/ 28 июня 2010

У меня есть MacBook Pro со Snow Leopard и стандартный дистрибутив Python 2.6. Numpy не работает должным образом на этом. Loadtxt выдает ошибки из-за слишком длинного имени файла, а getfromtxt не работает вообще (нет объекта в ошибке модуля). Тогда я попытался загрузить порт py26-numpy на MacPorts. Конечно, когда я использую Python, по умолчанию используется дистрибутив Mac. Как я могу переключить его, чтобы использовать последние и лучшие из MacPorts. Это кажется намного проще, чем создавать все необходимые инструменты из исходного кода ...

Спасибо!

Ответы [ 3 ]

4 голосов
/ 28 июня 2010

Прежде всего, добавьте путь MacPorts (/opt/local/bin) к вашему $PATH.bashrc (или в любом другом используемом вами файле конфигурации оболочки):

export PATH="/opt/local/bin:${PATH}"

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

Также обратите внимание, что версия Python 2.6 для MacPorts установлена ​​в /opt/local/bin/python2.6, поэтому для использования этого интерпретатора вам придется выполнить одно из трехвещи:

  1. Запустите интерпретатор, используя python2.6 (не просто python).
  2. Настройте псевдоним оболочки так, чтобы python вызывал python2.6 (alias python=python2.6)).
  3. Вручную установите символическую ссылку из /opt/local/bin/python -> /opt/local/bin/python2.6.
  4. Используйте python_select для установки Python, используемого при вызове python.

Варианты № 3 или № 4, вероятно, лучшая ставка.

1 голос
/ 28 июня 2010

Вам необходимо обновить PATH, чтобы содержимое MacPorts находилось перед стандартными системными каталогами, например, export PATH=/opt/local/bin:/opt/local/sbin:/opt/local/Library/Frameworks/Python.framework/Versions/Current/bin/:$PATH.

ОБНОВЛЕНИЕ: Обратите особое внимание на тот факт, что /opt/local/Library/Frameworks/Python.framework/Versions/Current/bin это перед вашего старого PATH значения.

0 голосов
/ 28 июня 2010

Существующие ответы весьма полезны, но я заметил, что ни один из них не объясняет, как сделать изменения.Если вы не знакомы с командной строкой Unix, это может быть важно.

Первое и пояснение: в операционных системах на основе Unix важная информация о конфигурации в оболочке хранится в вещах, называемых переменными среды.Переменная окружения PATH направляет вашу оболочку в список мест для поиска программ.Когда вы набираете команду, она начинается с самого левого конца переменной PATH и ищет в этой папке программу, которую вы пытались запустить.Если это находит это, это управляет этим;иначе это выглядит в следующей папке.Если у вас установлено несколько версий одной и той же программы, вы можете использовать переменную PATH для предоставления одного приоритета.

Чтобы использовать это, поместите папку с блестящей новой версией перед путем, как это:

PATH=/opt/local/bin:/usr/bin:/usr/local/bin

Чтобы внести это изменение в одну версию вашей оболочки,Вы можете набрать

export PATH=/opt/local/bin:/usr/bin:/usr/local/bin

Чтобы внести изменения в каждую открытую оболочку, вы должны указать своей оболочке устанавливать эту переменную при каждом запуске.Существует файл с именем .bashrc, а другой - с именем .bash_profile, который bash будет читать при запуске.Файл .bashrc обычно содержит инструкции для всех оболочек, а .bash_profile - инструкции только для интерактивных оболочек.Таким образом, чтобы внести это изменение, вы можете отредактировать /Users/yourname/.bashrc, добавив в него строку, подобную этой:

export PATH="/opt/local/bin:$PATH"

Что означает добавление /opt/local/bin в начало переменной пути, оставляя остальную частьпуть один.Если это изменение не работает, вам нужно либо убедиться, что .bashrc вызывается, добавив source $HOME/.bashrc в ваш .bash_profile скрипт, либо просто переместить необходимую строку в .bash_profile.

...