Как свернуть мои собственные pypi?
Я хотел бы запустить собственный внутренний pypi-сервер для распределения яйца в моей организации.
Я нашел несколько проектов, например:
Как я понимаю, в pypi.python.org используется программное обеспечение под названием Cheese Shop.
Мои вопросы:
- Почему я не могу использовать сам cheeseshop? (Я не могу найти его, не уверен, что он существует)
- Как другие люди решают эту проблему? (В настоящее время мы используем blush svn для распределения яиц)
* edit: Это кажется каноническим http://wiki.python.org/moin/PyPiImplementations. Тем не менее, меня интересует обратная связь.
Ответы
Ответ 1
Источник в Cheese Shop можно загрузить с https://bitbucket.org/pypa/pypi/src. Существует также пример со страницы, на которую вы ссылались, использования Apache в качестве "немого" репозитория пакетов Python:
# Mount pypi repositories into URI space
Alias /pypi /var/pypi
# /pypi/dev: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/dev/$1 !-d
RewriteCond /var/pypi/dev/$1 !-f
RewriteRule ^/pypi/dev/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/dev/$1/$2 !-f
RewriteRule ^/pypi/dev/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]
# /pypi/stable: Redirect for unknown packages (fallback to pypi)
RewriteCond /var/pypi/stable/$1 !-d
RewriteCond /var/pypi/stable/$1 !-f
RewriteRule ^/pypi/stable/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [R,L]
RewriteCond /var/pypi/stable/$1/$2 !-f
RewriteRule ^/pypi/stable/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [R,L]
Ответ 2
Для облегченного решения используйте pypiserver.
Ответ 3
Обновлено: crate.io отключился, и домен теперь совсем другой.
Один проект, который не упоминался, https://crate.io/, который кажется очень активным. Он утверждает, что является "индексом упаковки Python следующего поколения", но у них есть свои хранилища, которые хорошо разделяются на части, которые, похоже, приветствуют настройку и ремиксы в ваших целях.
Ответ 4
Существует вилка djangopypi с именем djangopypi2, которую вы можете получить из https://github.com/popen2/djangopypi2/, я ее установил и работает для меня, эта опция что я выбрал из списка из 24 альтернатив, которые я нашел в недавнем поиске, вы можете увидеть список здесь: http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html
Ответ 5
Warehouse будет вашим лучшим выбором в 2017 году. Из проекта README:
Склад - это хранилище пакетов Python следующего поколения, предназначенное для замены устаревшая база кода, которая в настоящее время включает PyPI
...
Вы можете запускать Warehouse локально с помощью docker
и docker-compose
. Видеть Начало работыв документации для инструкций по настройке.
Поддерживается Python Packaging Authority (PyPA), которые работают в сотрудничестве с членами основной команды разработки Python, и есть версия live, работающая на https://pypi.org/, которая отражает все в прежнем PyPI (https://pypi.python.org/).
Ответ 6
Если вам понадобится более легкое решение, а затем развертывание всего pypi-сервера, вы можете попробовать использовать индекс сервера, сгенерированный basketweaver.
Ответ 7
Еще один пропущенный из этого (старый) список:
Основанный на Django, который может быть небольшим излишеством, но я люблю django, и он очень просто модифицировать его в соответствии с вашими потребностями, если он не будет удовлетворительным.
Ответ 8
И исходный код ящика доступен, хотя документация, как минимум, может быть сказано, не существует:
Crate.Web
Это приложение Django, предоставляющее индекс пакетов Python. Использует пару других пакетов из https://github.com/crateio, чтобы вы могли развернуть свою версию без django.
Я специально задумываюсь о статическом, я всегда думал, что должен быть очень простой способ исследовать прямо некоторые [предварительно сконфигурированные] репозитории и магазин сыра непосредственно из моего публичного и частного репозиториев github/bitbucket, с просто простой (gunicorn) процесс.
Ответ 9
Я столкнулся с той же проблемой, и ClueReleaseManager решил проблему размещения внутреннего PyPI-сервера/настраиваемого репозитория Python для меня.
Это отвечает на второй вопрос, и я думаю, у вас уже есть ответ на вопрос.
Ответ 10
Мы используем его в корпоративной среде и довольны. Он поддерживает репликацию, частные индексы и наследование индексов.