2013-04-07 4 views
7

После неудачной попытки «упрощенной» установки рамки SimpleCV суперпак для Windows. Теперь я работаю через руководство по ручной установке (с которым я в порядке, поскольку у меня больше контроля над установкой и, возможно, в конце концов узнаю об установке пакетов Python правильно в Windows!)Почему в руководстве по установке инфраструктуры python рекомендуется использовать easy_install для некоторых необходимых пакетов и пипов для других?

Вместо того, чтобы просто слепо следовать руководству I «м пытаясь понять каждый шаг, поэтому я смущен этим ..

easy_install pyreadline 
easy_install PIL 
easy_install cython 
easy_install pip 
pip install ipython 
pip install https://github.com/ingenuitas/SimpleCV/zipball/1.3 

Почему не easy_install пип как можно скорее, то пип другие пакеты? ..

easy_install pip  {{{I intend to research and probably use get-pip.py here}}} 
pip install pyreadline   
pip install PIL 
pip install cython 
pip install ipython 
pip install https://github.com/ingenuitas/SimpleCV/zipball/1.3 

ли там ap неужели это делается так? (Мое ограниченное понимание состоит в том, что всегда предпочтительнее использовать pip, а не easy_install.)

Я знаю, что этот вопрос относится непосредственно к SimpleCV, но я хочу узнать правильный подход, когда я устанавливаю коллекции пакетов в будущем без преимущество руководства.

ответ

5

pip извлекает исходный код пакетов, которые вы пытаетесь установить и скомпилировать. Поэтому, если у вас нет установленного и настроенного компилятора, это не будет сделано для пакетов, которые содержат расширения, написанные на C, которые в этом случае относятся к pyreadline, PIL и cython.

easy_install использует предварительно скомпилированные пакеты от pypi (по крайней мере, для окон, если они доступны), что означает, что вам не нужно полностью скомпилировать все.

Для чистых пакетов python это не проблема с использованием pip вместо easy_install, и если у вас есть установленный компилятор и необходимые зависимости от сборки, он также должен работать.

+0

Спасибо за такой ясный ответ Мата! Я подумал: «Мы оба загрузим пакет, в чем разница? (Помимо преимуществ, которые дает pip), я не рассматривал, что на самом деле загружается, поэтому еще раз спасибо за это. Это порождает вопрос о том, как установить, является ли пакет чистым python или нет. Должен ли я по умолчанию просто пытаться использовать pip и прибегать к easy_install, если он не пытается выполнить компиляцию? –

+1

Это то, что я обычно делаю. Pip также следует за URL-адресами загрузки из pypi, поэтому иногда он устанавливает более новую версию с домашней страницы проекта, а затем упакованную из pypi. Вы также можете посмотреть прямо на pypi, если в описании 'C' указан как« Язык программирования ». – mata

+0

Да заметил язык ссылки на PyPi, не был уверен, что это был только метатег, указывающий на то, что пакет, возможно, связан с C каким-то образом, а не с определенным источником C (например, с учебным пакетом «C», написанным i n чистый питон). –

2

Я считаю, что ответ pip в настоящее время не поддерживает установку бинарных дистрибутивов, то есть пакетов Python, которые включают в себя предварительно скомпилированные модули расширения C. easy_install.

BTW, есть работа для обеспечения замены для pipeasy_install), которая будет полностью поддерживать бинарные дистрибутивы на всех платформах. См. here.

+0

OK спасибо, Нед, поэтому еще одна причина необходимости прибегать к easy_install. Я буду следить за будущими событиями, так как я тоже в замешательстве, используя дистрибутив вместо setuptools. –