python - test - ¿Cómo rodar mi propio pypi?
test pypi (10)
Warehouse
Warehouse sería su mejor apuesta en 2017. Desde el README del proyecto:
Warehouse es un repositorio de paquetes Python de próxima generación diseñado para reemplazar la base de código heredada que actualmente alimenta PyPI
...
Puede ejecutar Warehouse localmente usando la
docker
y ladocker-compose
. Consulte Introducción en la documentación para obtener instrucciones sobre cómo configurarlo.
Lo mantiene la Autoridad de Empaque de Python (PyPA) que trabaja en cooperación con los miembros del equipo de desarrollo central de Python, y hay una versión en vivo en https://pypi.org/ que refleja todo en el PyPI heredado ( PyPI ).
Me gustaría ejecutar mi propio servidor pypi interno, para la distribución de óvulos dentro de mi organización.
He encontrado algunos proyectos, tales como:
Según tengo entendido, pypi.python.org utiliza un software llamado Cheese Shop.
Mis preguntas:
- ¿Por qué no puedo usar la propia cheeseshop? (No puedo encontrarlo, no estoy seguro de que exista)
- ¿Cómo resuelven otras personas este problema? (Actualmente usamos blush svn para distribuir huevos)
* edición: Esto parece canónico http://wiki.python.org/moin/PyPiImplementations . Sin embargo, estoy interesado en comentarios.
devpi
Lo estamos utilizando en un entorno corporativo y estamos bastante satisfechos. Soporta replicación, índices privados y herencia de índices.
Actualizado: crate.io se ha cerrado y el dominio ahora es algo completamente distinto.
Un proyecto que no se ha mencionado es https://crate.io/ , que parece muy activo. Afirma ser un "Índice de empaquetado de Python de la próxima generación", pero tienen sus repositorios divididos muy bien en piezas que parecen agradecer la personalización y la remezcla a sus propósitos.
Hay una bifurcación de djangopypi llamada djangopypi2 que puede obtener desde https://github.com/popen2/djangopypi2/ , lo instalé y funcionó para mí, esta opción es lo que elegí de una lista de aproximadamente 24 alternativas que encontrado en una búsqueda reciente, puede ver la lista aquí: http://uyeya.blogspot.com/2013/10/list-of-local-alternatives-of-pypi.html
La fuente de Cheese Shop se puede descargar desde https://bitbucket.org/pypa/pypi/src . También hay un ejemplo, desde la página a la que te vinculaste, de usar Apache como un repositorio de paquetes de Python "tonto":
# 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]
Me encontré con el mismo problema, y ClueReleaseManager resolvió el problema de alojar un servidor PyPI interno / repositorio Python personalizado para mí.
Eso responde a la pregunta dos, y supongo que ya tiene la respuesta a la pregunta uno.
Otro que falta en esta lista (antiguo):
djangopypi
Basado en Django, lo que podría ser un poco excesivo, pero me encanta Django y hace que sea extremadamente sencillo modificarlo según sus necesidades en caso de que no sea satisfactorio.
Para una solución pypiserver , use pypiserver .
Si desea una solución más liviana y luego implementar un servidor pypi completo, puede intentar usar un índice de servidor generado por basketweaver .
Y el código fuente de la caja está disponible, aunque la documentación es, lo menos que se puede decir, no existe:
Es una aplicación Django que proporciona un índice de paquete Python. Utiliza un par de otros paquetes de https://github.com/crateio para que pueda desplegar su propia versión sin django.
Estoy pensando específicamente en uno estático, siempre pensé que debería haber una manera muy fácil de explorar directamente algunos repositorios [preconfigurados] y comprar queso directamente desde mis repositorios públicos y privados de github / bitbucket, con solo un simple ( proceso gunicorn) en ejecución.