совет по здравому смыслу об управлении пакетами Python в OSX для начинающих - PullRequest
5 голосов
/ 29 января 2011

Если я изучаю разработку Python для OSX (Snow Leopard), как мне лучше всего управлять моими пакетами Python?

Я очень рад большому количеству отличных пакетов Python.Я хотел бы начать изучать их, но управление пакетами привело меня в замешательство.Очевидно, я понятия не имею, что я делаю.Я вижу много вопросов о переполнении стека, которые касаются управления пакетами, и люди часто отвечают на них, говоря: «Почему бы вам просто не использовать x ? Посмотрите, как просто в этой единственной строке, которую я скопировал из своей оболочки,"

$ x install something

Это отличный ответ, пока x не сможет обработать некоторые конкретные зависимости или не сможет обработать пакет y .Вот что я уже пытался:

  1. Я начал просто устанавливать вещи с easy_install .
  2. Я вскоре обнаружил, что в некоторых важных пакетах отсутствовали зависимости (PIL) поэтому я искал и обнаружил MacPorts .
  3. Я начал использовать MacPorts, и все мои переменные окружения стали действительно запутанными, поэтому я выучил достаточно bash для перенастройки PATH, PYTHONPATH иsys.path чтобы все заработало (и чтобы окно моего терминала выглядело привлекательно).Некоторое время MacPorts казался великолепным.
  4. Но потом я запутался в том, какую версию различных модулей я использовал, и обнаружил больше проблем с зависимостями (GDAL) ...
  5. Затем несколько очень умныхлюди настоятельно рекомендовали мне перейти на Homebrew .Поэтому я удалил MacPorts и установил Homebrew.
  6. Теперь, когда у меня есть Homebrew, я не могу ничего устанавливать, потому что я не знаю, как создать Formula для большинствапакеты Python, которые я хочу использовать.Если пакет указан в pypi , я не знаю, должен ли я на самом деле использовать Homebrew или просто выяснить, как настроить easy_install для установки в каталоги Homebrew.И я до сих пор не знаю, как лучше подходить к отсутствующим зависимостям.Может быть, есть какой-то секретный репозиторий формулы, связанной с питоном?или простой способ преобразования файлов портов в Формулу?

Я знаю, что правильный ответ может зависеть от того, что я пытаюсь установить.Я пытаюсь установить наборы пакетов, которые позволяют мне:

  1. поиграть и автоматизировать все с python
    • appscript
    • PIL
    • pygame
  2. делать связанную с ГИС работу на python
    • gdal
    • shapely
    • postgis
    • scipy
  3. исследуйте поразительные возможности веб-приложений
    • django
    • google-app-engine

I 'Я полностью готов стереть все с моей машины, которая сейчас должна быть немного загромождена обрывками пакетов.Если бы мне пришлось изучать virtualenv или просто больше узнавать об основном процессе проверки зависимостей и устанавливать их самостоятельно, я с удовольствием это сделаю.Если бы я просто покопался в Homebrew, я тоже рад это сделать.Как мне справиться с этими проблемами, которые часто мешают мне делать то, что я действительно хочу делать (делать аккуратные вещи с помощью Python)?

Ответы [ 3 ]

6 голосов
/ 29 января 2011

Я бы настоятельно предложил следующее.Я использую их для базового управления пакетами.

Учебное пособие / блоги, которые должны помочь:

3 голосов
/ 29 января 2011

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

Подробности:

На OS X с использованием версий Macports все в порядке.То же самое можно сказать и о домашнем пиве, хотя я никогда не использовал его.(В Linux я устанавливаю Python из исходного кода в / opt / pythonxx /, например / opt / python25 /, / opt / python26 /, / opt / python27 и /opt/python31.)

I, затем Никогда не устанавливайте какие-либо пакеты в эти Pythons, за исключением virtualenv, distribute и pip, которые я устанавливаю во всех них.Когда я хочу установить пакет для проекта, я делаю virtualenv для этого проекта с версией Python, которую я использую для него:

$ cd /home/projects
$ /opt/python27/bin/virtualenv acoolproject
$ cd acoolproject
$ ./bin/pip install ThepackageIneed.

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

Вы можете включать и отключать среды с помощью virtualenv, я этого никогда не делаю, вместо этого я использую исполняемый файл python:

$ ./bin/python main.py

или

$ /home7projects/acoolproject/bin/python

Если мне нужны вещи, которые вы не можете просто установить с помощью pip, такие как Plone, или nginx или лак, я использую zc.buildout, чтобы создать конфигурацию реплицируемой среды, zc.buildout также будет работать изолированно, поэтому никаких пакетовустанавливается в главных питонах.

0 голосов
/ 01 февраля 2011

Если вы используете Homebrew, вы, вероятно, захотите использовать pip для установки пакетов Python. pip можно установить через Homebrew, но Homebrew не включает формулы для других пакетов Python. Но установить пакеты с помощью pip довольно просто - просто как

$ pip install <package>

(Имя пакета можно найти в PyPI.) Если вы установили pip через Homebrew, это все, что вам нужно сделать.

...