¿Cómo instalar manualmente un módulo pypi sin pip / easy_install?


91

Quiero usar el módulo gntp para mostrar notificaciones tipo tostadora para un software C / C ++. Quiero empaquetar todas las dependencias para que el software sea autoejecutable en otra computadora.

El módulo gntp solo está disponible a través del instalador de pip, que no se puede utilizar (la computadora que ejecuta el software no tiene conexión a Internet): ¿cómo puedo instalarlo desde las fuentes?

Preferiría no obligar al usuario a instalar easy_install / pip y agregar manualmente la ruta de pip al% PATH.

PD: Estoy usando Python 2.7 en una máquina con Windows.


4
¿Quizás con python setup.py install?
Nicolas

Respuestas:


149
  1. Descargar el paquete
  2. descomprímelo si está comprimido
  3. cd en el directorio que contiene setup.py
  4. Si hay alguna instrucción de instalación contenida en la documentación incluida en este documento, lea y siga las instrucciones DE OTRO MODO
  5. escribir python setup.py install

Es posible que necesite privilegios de administrador para el paso 5. Lo que haga aquí dependerá de su sistema operativo. Por ejemplo, en Ubuntu diríassudo python setup.py install

EDITAR - gracias a kwatford (ver el primer comentario)

Para evitar la necesidad de privilegios de administrador durante el paso 5 anterior, es posible que pueda hacer uso del indicador --user. De esta manera, puede instalar el paquete solo para el usuario actual.

Los doctores dicen:

Los archivos se instalarán en subdirectorios de site.USER_BASE (escrito como base de usuario de aquí en adelante). Este esquema instala módulos de Python puros y módulos de extensión en la misma ubicación (también conocida como site.USER_SITE). Estos son los valores para UNIX, incluido Mac OS X:

Se pueden encontrar más detalles aquí: http://docs.python.org/2.7/install/index.html


8
pip / easy_install / setup.py generalmente aceptan una marca --userpara instalar el paquete solo para el usuario actual, generalmente sin pasar por la necesidad de acceso de administrador.
kwatford

3
Por alguna razón veo esto: ImportError: No module named 'setuptools'encontré eso aquí: pypi.python.org/pypi/setuptools/1.1.6 Aunque la instalación me dio errores de excepción, ahora el módulo websocket no funciona en absoluto, creo que daré en Python 3.3 en Windows en este momento.
SSH Este

2
@SSHThis: Tengo los mismos resultados con un paquete cuya instalación estoy tratando de que funcione. Subir la verbosidad da "Porque esta distribución fue instalada --multi-versión [...]" que es falsa (solo una versión de Python instalada aquí) e inútil (usando el documento documentado "python -m easy_install [...] "no ayuda en absoluto), estoy contigo - Python es inutilizable.
Eric Towers

1
Supongo que pip install target-packagenormalmente instala / actualiza automáticamente otros paquetes de los que depende el paquete de destino. ¿Sucede esto en el caso del enfoque setup.py? ¿O el zip del paquete también contiene todas las dependencias? ¿Y quieres decir que deberíamos descargar Python Wheels en lugar de cremalleras? ¿Te gustan estos para numpy? Si no, ¿dónde encontrar cremalleras (por ejemplo, numpy)? (Estoy preguntando todo esto porque me veo obligado a trabajar detrás del proxy corporativo donde tengo que luchar por cada descarga: '()
Mahesha999

3
Realmente no puedes descargar paquetes sin conexión ... Si quieres descargarlos mientras estás fuera de tu tonta red de trabajo, probablemente haría lo siguiente: 1. Haz un virtualenv. 2. python setup.py installo pip installtodas las cosas que necesitará. 3. ejecute pip freeze para obtener una lista de todos los paquetes y todas las versiones. Puede almacenar esto en un archivo (tradicionalmente llamado requirements.txt '. Luego, si desea descargar los paquetes para poder copiarlos en diferentes máquinas que pueda usar pip download [options] -r <requirements file>. Esta no es la forma más eficiente. Pero fácil
Sheena

5

Para explicar mejor la respuesta de Sheena , necesitaba tener las herramientas de configuración instaladas como una dependencia de otra herramienta, por ejemplo, more-itertools .

Descargar

Haga clic en el Clone or downloadbotón y elija su método. Los coloqué en un dev/py/libsdirectorio en el directorio de inicio de mi usuario. No importa dónde se guarden, porque no se instalarán allí.

Instalación de herramientas de configuración

Deberá ejecutar lo siguiente dentro del directorio setup-tools .

python bootstrap.py
python setup.py install

Instalación de dependencias generales

Ahora puede navegar al directorio more- itertools e instalarlo normalmente.

  1. Descargar el paquete
  2. Descomprímalo si es un archivo
  3. Navegue ( cd ...) al directorio que contienesetup.py
  4. Si hay instrucciones de instalación contenidas en la documentación contenida en este documento, lea y siga las instrucciones DE OTRO MODO
  5. Escribir: python setup.py install

2

Aunque la respuesta de Sheena hace el trabajo, pipno se detiene ahí.

De la respuesta de Sheena:

  1. Descargar el paquete
  2. descomprímelo si está comprimido
  3. cd en el directorio que contiene setup.py
  4. Si hay alguna instrucción de instalación contenida en la documentación contenida en este documento, lea y siga las instrucciones DE LO CONTRARIO
  5. escribir python setup.py install

Al final de esto, terminará con un .eggarchivo en formato site-packages. Como usuario, esto no debería molestarle. Puede importy uninstallel paquete normalmente. Sin embargo, si quieres hacerlo,pip manera, puede continuar con los siguientes pasos.

En el site-packagesdirectorio,

  1. unzip <.egg file>
  2. cambiar el nombre del EGG-INFOdirectorio como<pkg>-<version>.dist-info
  3. Ahora verá un directorio separado con el nombre del paquete, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. El >>es para evitar sobrescribir.

Ahora, mirando el site-packagesdirectorio, nunca se dará cuenta de que instaló sin pip. Para uninstall, simplemente haz lo de siempre pip uninstall <pkg>.


¿Qué pasa si estoy instalando un paquete desde el repositorio de Anaconda y no tiene setup.pyarchivo?
Confundido el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.