Вопрос

Я хотел бы запустить свой собственный внутренний сервер pypi для распространения egg в моей организации.

Я нашел несколько проектов, таких как:

Насколько я понимаю, pypi.python.org использует программное обеспечение под названием Cheese Shop.

Мои вопросы:

  1. Почему я не могу использовать сам cheeseshop?(Я не могу его найти, не уверен, что он существует)
  2. Как другие люди решают эту проблему?(В настоящее время мы используем покраснеть svn для раздачи яиц)

*редактировать:Это кажется каноническим http://wiki .python.org/moin/PyPiImplementations.Тем не менее, я заинтересован в обратной связи.

Это было полезно?

Решение

Исходный код для 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]

Другие советы

Для легкого решения используйте сервер pypiserver.

Склад

Склад это был бы ваш лучший выбор в 2017 году.Из README проекта:

Warehouse - это репозиторий пакетов Python следующего поколения, предназначенный для замены устаревшей базы кода, которая в настоящее время поддерживает PyPI ( ПиПИ )

...

Вы можете запустить Хранилище локально, используя docker и docker-compose.Видишь Приступая к работе инструкции о том, как его настроить, приведены в документации.

Он поддерживается Управление по упаковке Python (PyPA) которые работают в сотрудничестве с членами основной команды разработчиков Python, и есть живая версия, работающая на https://pypi.org/ который отражает все в устаревшем PyPI (https://pypi.python.org/).

Существует форк djangopypi с именем djangopypi2, вы можете получить его из https://github.com/popen2/djangopypi2/, Я установил его и работает у меня, этот вариант - это то, что я выбрал из списка примерно из 24 альтернатив, которые я нашел в недавнем поиске, вы можете посмотреть список здесь: http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html

девпи

Мы используем его в корпоративной среде и вполне удовлетворены.Он поддерживает репликацию, частные индексы и наследование индексов.

Обновленный:ящик.ввод-вывод завершен, и домен теперь представляет собой нечто совершенно другое.

Один проект, который не был упомянут, это https://crate.io/, который кажется очень активным.Он утверждает, что является "Индексом упаковки Python следующего поколения", но их репозитории красиво разбиты на части, которые, похоже, приветствуют настройку и ремикширование для ваших целей.

Если вам нужно более легкое решение, чем развертывание всего сервера pypi, вы могли бы попробовать использовать индекс сервера, сгенерированный плетущая корзины.

Еще один пропавший без вести в этом (устаревшем) списке:

джангопипи

Основан на Django, что может быть небольшим излишеством, но я люблю django, и это позволяет чрезвычайно просто модифицировать его в соответствии с вашими потребностями, если он вас не удовлетворяет.

И исходный код crate доступен, хотя документация, по крайней мере, это можно сказать, не существует:

Ящик.Паутина

Это приложение Django, предоставляющее индекс пакета Python.Использует пару других пакетов из https://github.com/crateio таким образом, вы могли бы выпустить свою собственную версию без django.

Я конкретно думаю о статическом, я всегда думал, что должен быть очень простой способ напрямую исследовать некоторые [предварительно настроенные] репозитории и покупать сыр непосредственно из моих публичных и частных репозиториев github / bitbucket, запустив всего лишь простой процесс (gunicorn).

Я столкнулся с той же проблемой, и ClueReleaseManager - Менеджер ключей решил проблему размещения внутреннего сервера PyPI / пользовательского репозитория Python для меня.

Это ответ на второй вопрос, и я думаю, у вас уже есть ответ на первый.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top