mac all python pip pypi

python - all - ¿Cómo crear un propio índice de repositorio pypi propio sin espejo?



upgrade pip windows (4)

Tenemos varios paquetes propios de python y queremos crear un repositorio pypi local para ellos utilizando una interfaz simple como https://pypi.python.org/simple/

Este repositorio que quiero crear solo localmente sin espejos por razones de seguridad, y estará bajo el control de apache

El comando pypimirror looks debe inicializarse una vez, lo que debe reflejar.

¿Cómo puedo generar PyPi Simple Index basado en paquetes python locales?

¿Algún otro script simple para esto?


No hay nada especial en el espejo, y puedes usar mod_rewrite para configurarlo tú mismo.

  1. Vuelca tus paquetes en un directorio que esté mapeado a una URL. Aquí estoy usando /url/to/my/pypi/ an un ejemplo. La jerarquía de la carpeta debe ser /foo/bar/simple/[name of package]/[name of tarball]

  2. Agregue lo siguiente a .htaccess o la configuración global para ese directorio donde están sus paquetes. El último bloque de líneas es una vuelta atrás al índice pypi global:

    Options +Indexes RewriteEngine On RewriteRule ^/robots.txt - [L] RewriteRule ^/icons/.* - [L] RewriteRule ^/index/..* - [L] RewriteCond /foo/bar/simple/ !-f RewriteCond /foo/bar/simple/ !-d RewriteRule ^/(.*)/?$ http://pypi.python.org/ [R,L]

  3. Actualice su ~/.pip/pip.conf para apuntar al nuevo repositorio:

    [global] index-url = http://localhost/url/to/my/pypi/

    O use la opción -i http://localhost/url/to/my/pypi/ en la línea de comando.


Si está hablando de ejecutar simplepypi, tendrá su servidor para agregar paquetes y servirlos. Para citar la documentación:

- Running this on the setup.py of your favorite package: python setup.py sdist upload -r local

Si os.walk que usar os.walk o glob.glob en su directorio local de paquetes de sitio, podría filtrar rápidamente para setup.py en cada uno de los paquetes / directorios e invocar lo anterior en ellos.

Si solo necesita crear un directorio de archivos tar.gz completos con una lista .html de ellos, entonces puede usar glob.glob en el nivel superior de su directorio de paquetes de sitio - tar.gz cada directorio por turno y agregar el resultado nombre de archivo a una lista; a continuación, puede generar su index.html desde esa lista.

Puede usar cualquiera de una gran cantidad de motores de plantillas para esto o generarlo usted mismo:

import glob filelist = glob.glob("*.tar.gz") tags = [''<A href="file:Where/%s">%s</A>'' % (s,s) for s in tags] head = """<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE></TITLE> <META NAME="Generator" CONTENT="Python Script"> <META NAME="Keywords" CONTENT="Cheeseshop"> <META NAME="Description" CONTENT="List of local python packages"> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?"> """ tail = """</BODY></HTML>""" tags.insert(0,head) tags.append(tail) page = "/n".join(tags)

Luego, guárdalo o sirve tu página.


Ya que pidió responder aquí:

Echa un vistazo a pip2pi , parece ser exactamente lo que estás buscando.


Tuvimos una necesidad similar en mi empresa. Básicamente, ¿cómo podemos cargar paquetes de "código cerrado" en un índice mientras podemos instalarlos como si estuvieran en PyPI?

Hemos patrocinado un proyecto llamado devpi que actúa como un caché PyPI (los paquetes a los que tiene acceso desde PyPI se almacenarán en caché en su servidor), así como un servidor de índice potente y rápido. La documentación está disponible en http://doc.devpi.net/latest/ .

El siguiente en la hoja de ruta es la creación de reflejos para la implementación de múltiples geos. Patear las llantas en su máquina toma aproximadamente 5 minutos (mire las guías de inicio rápido). Finalmente devpi es compatible tanto con pip como con easy_install (es decir, no necesita el cliente devpi instalado en su máquina).

Espero que esto ayude.