Как использовать easy_install и buildout, когда pypi не работает? - PullRequest
14 голосов
/ 17 февраля 2009

Я использую buildout для автоматической загрузки и настройки многих зависимостей моей установки Plone. buildout более или менее использует easy_install, чтобы загрузить и установить кучу яиц Python. Обычно это работает, но не работает, если невозможно загрузить какую-либо из зависимостей или я хочу, чтобы buildout нашел внутренний пакет, не подходящий для pypi. Как я могу настроить свою собственную локальную версию pypi для автоматического зеркалирования пакетов, которые мне нужны? Будет ли он все еще зависеть от сторонних серверов для пакетов, которые используют pypi для своих метаданных, но не для своего кода?

Ответы [ 7 ]

13 голосов
/ 17 февраля 2009

Вот инструкция по настройке собственного зеркала PyPi . Домашняя страница этого проекта здесь . Там также, кажется, растет число зеркал.

Инструкции по настройке собственного индекса пакета см. В этом блоге , где в конце поясняется одно решение. Тогда вы также можете разместить там свои собственные внутренние пакеты. Преимущество также в том, что версии исправлены таким образом. (Для способа закрепления версий непосредственно в buildout, проверьте этот пост ).

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

8 голосов
/ 20 июля 2010

Вы также можете использовать зеркало. Поместите это в раздел «[global]» файла ~ / .pip / pip.conf:

index-url = http://d.pypi.python.org/simple/

Это недавно появившаяся функция здесь .

5 голосов
/ 03 августа 2010

На этой странице показано, как использовать альтернативное зеркало, упомянутое в посте @moraes, но для easy_install, buildout и virtualenv, а также для pip:

http://jacobian.org/writing/when-pypi-goes-down/

4 голосов
/ 01 декабря 2011

В случае zc.buildout: используйте функции локального кэширования загрузки. В основном кешируется три вещи:

  • внешнее расширение, т.е. http://dist.plone.org/release/4.1.2/versions.cfg
  • яиц от какого-то дистервера, то есть pypi
  • загрузок с zc.recipe.cmmi или подобных рецептов с использованием инфраструктуры загрузки, предоставленной zc.buildout

Для всех трех нам нужно настроить глобальную конфигурацию и установить папку кэша для расширений и одну для яиц и других загрузок.

В вашей домашней папке создайте папку .buildout.

В этой папке создайте папки extends-cache и downloads

В .buildout создайте файл default.cfg с:

[buildout]  
extends-cache = /home/USERNAME/.buildout/extends-cache 
download-cache = /home/USERNAME/.buildout/downloads

так что у вас есть:

.buildout/
├── default.cfg
├── downloads
└── extends-cache

Вот и все. Убедитесь, что вы не переопределяете эти две переменные из default.cfg в вашей конкретной сборке. После первого успешного запуска сборки последующие запуски выполняются в автономном режиме ./bin/buildout -o.

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

Кроме того, имеет смысл запустить собственное pypi-зеркало. В качестве другого источника информации вас может заинтересовать статья, которую я написал некоторое время назад на эту тему: http://bluedynamics.com/articles/jens/setup-z3c.pypimirror

2 голосов
/ 27 мая 2011

Настройка index в buildout.cfg, например,

[buildout]
index = http://a.pypi.python.org/
find-links = 

Больше зеркал на: http://www.pypi -mirrors.org /

0 голосов
/ 03 августа 2018

Для пакетов, которые вам нужно установить в virtualenv обычно через requirements.txt (или может быть индивидуально), вы должны переопределить файл pip.conf, обычно расположенный в ~/.pip/pip.conf

В вашем pip.conf файле:

[global]
index-url=https://pypi.python.org/simple/

[install]
trusted-host=pypi.python.org

Здесь вы можете указать URL своей собственной версии pypi, если это необходимо.

Если вы хотите использовать другой сервер pypi при создании virtualenv - easy_install, вам необходимо переопределить файл pydistutils.cfg, обычно расположенный в ~/pydistutils.cfg

В pydistutils.cfg файле:

[easy_install]
index-url=https://pypi.python.org/simple/

Это обеспечит создание вашего venv с URL-адресом pypi, упомянутым в pydistutils.cfg. Здесь мы говорим easy_install использовать https://pypi.python.org/simple/ для создания venvs.

0 голосов
/ 08 апреля 2011

PyPI имеет зеркалирование с середины 2010 года http://pypi.python.org/mirrors

...