Как использовать easy_install и buildout, когда pypi не работает?
Я использую buildout для автоматической загрузки и настройки многих зависимостей моей установки Plone. buildout более или менее использует easy_install для загрузки и установки кучи яиц Python. Обычно это работает, но это не работает, если какая-либо из зависимостей не может быть загружена или я хочу, чтобы buildout обнаружил, что внутренний пакет не подходит для pypi. Как я могу настроить собственную локальную версию pypi для автоматического зеркалирования пакетов, которые мне нужны? Будет ли он по-прежнему зависеть от сторонних серверов для пакетов, которые используют pypi для своих метаданных, но не для их кода?
Ответы
Ответ 1
Ниже приведены инструкции о том, как настроить собственное зеркало PyPi. Домашняя страница этого проекта здесь. Там также растет количество зеркал.
Инструкции по настройке собственного индекса пакета см. в этом сообщении в блоге, где в конце объясняется одно решение. Затем вы также можете разместить свои собственные внутренние пакеты. Преимущество также в том, что версии исправлены таким образом. (Чтобы установить привязки версий непосредственно в buildout, зайдите этот пост).
Если в PyPI есть только метаданные, и архив хранится где-то в другом месте, вы можете, конечно, скопировать его и в свой индекс. Если вы просто используете зеркало PyPI, я предполагаю, что вам все еще нужен доступ к этим серверам.
Ответ 2
Вы также можете использовать зеркало. Поместите это в раздел "[global]" в разделе "~/.pip/pip.conf":
index-url = http://d.pypi.python.org/simple/
Это недавняя функция, объявленная здесь.
Ответ 3
На этой странице показано, как использовать альтернативное зеркало, указанное в сообщении @moraes, но для easy_install, buildout и virtualenv, а также для pip:
http://jacobian.org/writing/when-pypi-goes-down/
Ответ 4
В случае 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 в вашем конкретном buildout. После первого успешного запуска сборки последующие прогоны запускаются в автономном режиме ./bin/buildout -o
.
Поскольку создание побочных эффектов происходит намного быстрее, если используется в автономном режиме, то есть когда новых загрузок не ожидается, но какая-то конфигурация изменилась
Кроме того, имеет смысл запустить свое собственное pypi-mirror. В качестве другого источника информации вам может быть интересна статья, которую я написал некоторое время назад по этой теме: http://bluedynamics.com/articles/jens/setup-z3c.pypimirror
Ответ 5
Настроить index
в buildout.cfg
, например
[buildout]
index = http://a.pypi.python.org/
find-links =
Больше зеркал: http://www.pypi-mirrors.org/
Ответ 6
PyPI имеет зеркальное отображение с середины 2010 года http://pypi.python.org/mirrors