Вашему вопросу уже три года, и есть некоторые детали, не раскрытые в других ответах:
Большинство людей, которых я знаю, используют HomeBrew или MacPorts , я предпочитаю MacPorts из-за того, что он полностью соответствует среде Mac OS X по умолчанию и моим настройкам разработки. Просто переместите папку / opt и протестируйте свои пакеты в обычной пользовательской среде Python.
MacPorts переносится только на Mac, но с помощью easy_install или pip вы узнаете, как настроить свою среду на любой платформе (Win / Mac / Linux / Bsd ...). Кроме того, он всегда будет более актуальным и с большим количеством пакетов
Я лично позволяю MacPorts обрабатывать мои модули Python, чтобы все было в курсе. Как и любой другой менеджер пакетов высокого уровня (например, apt-get), он намного лучше подходит для тяжелой работы с модулями с большим количеством двоичных зависимостей. Я не могу создать свои привязки Qt (PySide) с помощью easy_install или pip. Qt огромен и требует много времени для компиляции. Как только вам понадобится пакет Python, которому нужна библиотека, используемая программами, отличными от Python, старайтесь избегать easy_install или pip
В какой-то момент вы обнаружите, что в MacPorts отсутствуют некоторые пакеты. Я не верю, что MacPorts когда-либо предоставит вам весь CheeseShop . Например, недавно мне понадобился модуль Elixir , но MacPorts предлагает только py25-elixir и py26-elixir, а не версию py27. В таких случаях у вас есть:
pip-2.7 install --user elixir
(убедитесь, что вы всегда набираете pip- (версия))
Это создаст дополнительную библиотеку Python в вашем домашнем каталоге. Да, Python будет работать с более чем одним расположением библиотеки: одно находится под контролем MacPorts, а другое - локальным пользователем для всего, что отсутствует в MacPorts.
Теперь обратите внимание, что я предпочитаю pip над easy_install. Есть веская причина избегать использования setuptools и easy_install. Вот хорошее объяснение, и я стараюсь держаться от них подальше. Одна очень полезная функция pip - предоставить вам список всех модулей (вместе с их версиями), которые вы установили с помощью MacPorts, easy_install и самого pip:
пип-2.7 заморозить
Если вы уже начали использовать easy_install, не волнуйтесь, pip может распознать все, что уже сделано easy_install, и даже обновить пакеты, установленные с его помощью.
Если вы разработчик, следите за virtualenv для управления различными настройками и комбинациями версий модулей. В других ответах уже упоминается об этом, но до сих пор не упоминается модуль Tox , инструмент для проверки правильности установки вашего пакета с разными версиями Python.
Хотя у меня обычно нет конфликтов версий, мне нравится иметь virtualenv, чтобы настроить чистую среду и получить четкое представление о зависимостях моих пакетов. Таким образом, я никогда не забуду никаких зависимостей в моем setup.py
Если вы выбираете MacPorts, имейте в виду, что несколько версий одного и того же пакета больше не выбираются, как старый стиль Debian с дополнительным пакетом python_select (он все еще существует для совместимости). Теперь у вас есть команда select, чтобы выбрать, какая версия Python будет использоваться (вы даже можете выбрать те, которые установлены Apple):
$ port select python
Available versions for python:
none
python25-apple
python26-apple
python27 (active)
python27-apple
python32
$ port select python python32
Добавьте tox поверх него, и ваши программы должны быть действительно портативными