2011-05-27 32 views
7

Me pregunto si hay una manera de "instalar" módulos de un solo archivo usando pip (es decir, simplemente haga que pip descargue la versión especificada del archivo y cópielo a site-packages)Uso de pip para instalar módulos de un solo archivo python

Tengo un proyecto de Django que utiliza varios módulos de terceros que no son distribuciones adecuadas (django-thumbs y un par de otros) y quiero pip freeze todo para que el proyecto se pueda instalar fácilmente en otro lugar. He intentado sólo hacer

pip install git+https://github.com/path/to/file.git

(e intentado con la etiqueta -e también) pero PIP se queja de que no hay ningún archivo setup.py.

Edit: debería haber mencionado - la razón por la que quiero hacer esto es por lo que puede incluir el módulo requerido en un archivo requirements.txt, para hacer la configuración del proyecto en una máquina nueva o una nueva virtualenv más fácil.

+0

¿por qué no usar un submódulo de git? – jterrace

Respuesta

2

pip requiere un setup.py válido para instalar un paquete de python. Por definición todos los paquetes de Python tiene un setup.py ... Lo que está intentando instalar no es un paquete, sino más bien un módulo de una sola fila ... lo que es malo en hacer algo como:

git clone git+https://github.com/path/to/file.git /path/to/python/install/lib 

I don' Entiendo completamente la lógica detrás de querer instalar algo que no es un paquete con un administrador de paquetes ...

+4

Tenía curiosidad si pudiera condensar todo el proyecto en un único archivo de requisitos que podría ser instalado con un solo comando. Tener que 'git clone' cada módulo individualmente es algo menos elegante. (Hace poco intenté configurar a otra persona con el proyecto en su computadora y se encontró con un montón de problemas, que es lo que motivó la pregunta) – danny

+0

configuración desde setuptools permite a los usuarios especificar dependencias de archivos de una sola pirámide (http: // peak .telecommunity.com/DevCenter/setuptools # dependencies-that-aren-t-in-pypi), por lo que pip debería proporcionar esto para cumplir con la interfaz de configuración. Además, los módulos de archivo de una sola letra son bastante flexibles y cómodos. – danza

Cuestiones relacionadas