2009-02-09 4 views

ответ

16

pip (http://pypi.python.org/pypi/pip/) является заменой инструмента easy_install и может сделать это.

Просто запустите easy_install pip и установите переменную окружения PIP_DOWNLOAD_CACHE на путь, который вы хотите, чтобы сохранить файлы. Обратите внимание, что кеш не будет работать с зависимостями, которые проверяются в репозитории исходного кода (например, svn/git/hg/bzr).

Затем используйте pip install вместо easy_install

+7

Следует отметить, что 'pip can not install binaries (_. Egg files_)'. Это важно для платформ Windows. –

13

Вот мое решение, используя пип, управление даже установку бинарных пакетов и использовать на обоих, Linux и Windows. И в соответствии с запросом он будет ограничивать загрузку с PyPi до mininum и в качестве дополнительного бонуса в Linux, это позволяет ускорить повторную установку пакетов, обычно требующих компиляции, до доли секунды.

Установки выполняют несколько шагов, но я думаю, это стоит того.

Создать пип конфигурационный файл

Создать пип конфигурационный файл (на Linux: ~/.pip/pip.conf, на окнах% HOME% \ пип \ pip.ini)

Мой один имеет это содержание :

[global] 
download-cache = /home/javl/.pip/cache 
find-links = /home/javl/.pip/packages 

[install] 
use-wheel = yes 

[wheel] 
wheel-dir = /home/javl/.pip/packages 

Наполнение cache реж - автоматически переходит

cache реж будет кэшироваться версия данных, загруженных из PyPI каждый раз, р ip пытается получить пакет из pypi. Легко получить его там (никакой особой осторожности не требуется), но обратите внимание, что с точки зрения pip это только данные, загруженные с PyPi, а не пакеты, поэтому, если вы используете опцию --no-index, это не сработает.

pip install --download заселить packages реж

packages реж это место для размещения файлов реального пакета в. Например. для моего любимого пакета plac, я хотел бы сделать:

$ пип установить --download ~/.pip/пакеты PLAC

и НОАК файл пакета будет стоять в этой директории. Вы можете даже использовать файл -r requirements.txt, чтобы сделать это для нескольких пакетов одновременно.

Эти пакеты используются даже с $ pip install --no-index <something>.

предотвратить повторную компиляцию того же пакета на Linux

Э.Г. lxml package требует компрессии, и загрузка и компиляция могут занять от 45 секунд до минут. Используя формат колес, вы можете здесь многого.

Установите wheel инструмент, если у вас нет его еще:

$ pip install wheel 

Создание колеса для lxml (предполагается, что, вам удалось установить lxml в прошлом - это требует несколько библиотек в системе должны быть установлены):

$ pip wheel lxml 

Это переходит скачать, обобщать, но в конечном итоге приводит к LXML whl файл, находясь в packgages реж.

С тех пор

$ pip install lxml 

или даже быстрее

$ pip install --no-index lxml 

займет доли секунды, так как он использует колесо отформатированный пакет.

Подготовить пакет колеса из пакета ехе установки окна

(примечание: это может быть получен даже на Linux машине, там нет компиляции, только некоторые переупаковка из ехе файла в whl.)

  1. скачать ехе форму пакета из PyPI, например:

    $ Wget https://pypi.python.org/packages/2.7/l/lxml/lxml-3.2.3.win32-py2.7.exe#md5=14ab978b7f0a3382719b65a1ca938d33 $ реж LXML-3.2.3.win32-py2.7.exe

  2. преобразовать его в whl

    $ колесо новообращенный LXML-3.2.3.win32-py2.7.exe $ реж LXML-3.2.3.win32-py2.7.exe LXML-3,2. 3-cp27-ни-win32.whl

  3. Попробуй:

    $ пункт установить LXML

или

$ pip install --no-index lxml 

должно быть очень быстрым.

Обратите внимание, что wheel convert может выполнять точно такое же преобразование для пакетов с отформатированным яйцом.

Пусть easy_install и setup.py install повторно использовать packages реж

easy_install$ python setup.py install и, кажется, не предлагают скачать кэш, но позволяют использовать пакеты, которые есть в нашем packages реже.

Для этого файла редактирования конфигурации для этих двух инструментов:

В Linux: $HOME/.pydistutils.cfg

В Windows: %HOME%\pydistutils.cfg

В моем случае я здесь в :

[easy_install] 
find_links = /home/javl/.pip/packages 

Эта конфигурация может помочь даже в некоторых случаях вызова pip install, когда попытка попытки попытки скрыть пакет, объявив зависимость от других. Поскольку он делегирует эту задачу на вызов setup.py, без конфигурации .pydistutils.cfg он будет загружать файл из PyPi.

К сожалению, формат колеса в этом случае не поддерживается (насколько мне известно).

Смежные вопросы