Utilice setuptools para instalar desde la ubicación

Tengo un marco para un sitio que quiero usar en múltiples proyectos, pero no quiero enviar mi marco a PyPi. ¿Hay alguna forma en que pueda indicarle a mi setup.py que instale el marco desde una ubicación específica?

Aquí está mi actual setup.py

from setuptools import setup setup( name='Website', version='0.2.1', install_requires=[ 'boto>=2.6', 'fabric>=1.4', 'lepl>=5.1', 'pygeoip>=0.2.4', 'pylibmc>=1.2.3', 'pymongo>=2.2', 'pyyaml>=3.1', 'requests>=0.12', 'slimit>=0.7.4', 'thrift>=0.8.0', 'tornado>=2.3', ], ) 

Esas dependencias son en realidad todas las dependencias de mi marco, de modo que si pudiera incluirlo de alguna manera solo podría tener el marco que se enumera aquí.

Parece que todos sus requisitos son públicos (en PyPI), y no necesita versiones específicas de ellos, solo “lo suficientemente nuevos”. En 2016, cuando puedes contar con que todos tengan una versión reciente de pip , realmente no hay nada que hacer. Si acaba de pip install . desde el directorio de origen o pip install git+https://url/to/package o similar, solo sacará las últimas versiones de las dependencias de la red. El hecho de que su paquete no esté en PyPI no impedirá que pip encuentre sus dependencias allí.

O, si desea guardarlos todos localmente, puede configurar un índice PyPI local. Aunque en ese caso, probablemente sería más sencillo enviar su paquete a ese mismo índice local e instalarlo desde allí.

Si necesita algo más complicado, un archivo de requisitos puede hacerse cargo de eso por usted.

En particular, si necesita distribuir el paquete a otras personas en su organización que pueden no tener configurado el índice local de su equipo, o por alguna razón no puede configurar un índice local en primer lugar, puede poner todos los la información necesaria en el archivo de requisitos, o, si es más apropiado, en la línea de comandos utilizada para instalar su paquete (que incluso funciona si está atascado con la instalación easy_install o versiones antiguas de pip ).

La documentación proporciona todos los detalles, y esta publicación del blog lo explica muy bien, pero la versión corta es la siguiente:

  • Si tiene un índice PyPI local, proporcione --extra-index-url=http://my.server/path/to/my/pypi/ .

  • Si tiene un servidor HTTP en el que puede colocar los paquetes, y puede habilitar la opción de “contenido de directorio de índice automático” en su servidor, simplemente proporcione --find-links=http://my.server/path/to/my/packages/ .

  • Si desea usar archivos locales (o el uso compartido de archivos SMB / AFP / etc.), Cree un archivo HTML trivial con nada más que enlaces a todos los paquetes locales, y proporcione --find-links=file:///path/to/my/index.html .

Nuevamente, estos pueden ir a la línea de comandos de “para instalar este paquete, ejecutar este” (o un script de instalación curl | sh ), pero generalmente solo desea colocarlos en un archivo de requisitos. Si es así, asegúrese de usar solo un valor por opción (por ejemplo, si desea agregar dos índices adicionales, agregue dos --extra-index-url ) y coloque cada uno en su propia línea.

Un archivo de requisitos también le permite especificar versiones específicas de cada paquete, por lo que puede estar seguro de que las personas están implementando con el mismo código que usted desarrolló y probó, lo que a menudo es útil en este tipo de situaciones.