Cómo usar Requirements.txt para instalar todas las dependencias en un proyecto de Python

83

Soy nuevo en Python. Recientemente obtuve un proyecto escrito por Python y requiere cierta instalación. Ejecuto el siguiente comando para instalar pero obtuve un error.

# pip install requirements.txt 
Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt

Busqué en Google y encontré este enlace, http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txtpero no entiendo muy bien cuál es la solución en esa publicación.

A continuación se muestra mi archivo requirements.txt:

# cat requirements.txt 
ordereddict==1.1
argparse==1.2.1
python-dateutil==2.2
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pymongo==3.3.0
psutil>=2.0

¿Existe una manera fácil de instalar todas las dependencias requeridas en este proyecto de Python?

EDIT1

A continuación se muestra la salida de pip3 install -r requirements.txt.

# pip3 install -r requirements.txt 
Requirement already satisfied: ordereddict==1.1 in /usr/local/lib/python3.5/dist-packages (from -r requirements.txt (line 1))
Collecting argparse==1.2.1 (from -r requirements.txt (line 2))
  Using cached argparse-1.2.1.tar.gz
Collecting python-dateutil==2.2 (from -r requirements.txt (line 3))
  Using cached python-dateutil-2.2.tar.gz
Collecting matplotlib==1.3.1 (from -r requirements.txt (line 4))
  Using cached matplotlib-1.3.1.tar.gz
    Complete output from command python setup.py egg_info:
    ============================================================================
    Edit setup.cfg to change the build options

    BUILDING MATPLOTLIB
                matplotlib: yes [1.3.1]
                    python: yes [3.5.2 (default, Nov 17 2016, 17:05:23)  [GCC
                            5.4.0 20160609]]
                  platform: yes [linux]

    REQUIRED DEPENDENCIES AND EXTENSIONS
                     numpy: yes [version 1.11.3]
                  dateutil: yes [using dateutil version 2.6.0]
                   tornado: yes [tornado was not found. It is required for the
                            WebAgg backend. pip/easy_install may attempt to
                            install it after matplotlib.]
                 pyparsing: yes [using pyparsing version 2.1.10]
                     pycxx: yes [Official versions of PyCXX are not compatible
                            with Python 3.x.  Using local copy]
                    libagg: yes [pkg-config information for 'libagg' could not
                            be found. Using local copy.]
                  freetype: no  [The C/C++ header for freetype2 (ft2build.h)
                            could not be found.  You may need to install the
                            development package.]
                       png: yes [pkg-config information for 'libpng' could not
                            be found. Using unknown version.]

    OPTIONAL SUBPACKAGES
               sample_data: yes [installing]
                  toolkits: yes [installing]
                     tests: yes [using nose version 1.3.7]

    OPTIONAL BACKEND EXTENSIONS
                    macosx: no  [Mac OS-X only]
                    qt4agg: no  [PyQt4 not found]
                   gtk3agg: no  [gtk3agg backend does not work on Python 3]
                 gtk3cairo: no  [Requires cairo to be installed.]
                    gtkagg: no  [Requires pygtk]
                     tkagg: no  [TKAgg requires Tkinter.]
                     wxagg: no  [requires wxPython]
                       gtk: no  [Requires pygtk]
                       agg: yes [installing]
                     cairo: no  [cairo not found]
                 windowing: no  [Microsoft Windows only]

    OPTIONAL LATEX DEPENDENCIES
                    dvipng: no
               ghostscript: no
                     latex: no
                   pdftops: no

    ============================================================================
                            * The following required packages can not be built:
                            * freetype

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-don4ne_2/matplotlib/

Ya lo he instalado, libfreetype6-devpero el comando pip todavía informa que falta esta dependencia.

# apt-get install libfreetype6-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libfreetype6-dev is already the newest version (2.6.1-0.1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Joey Yi Zhao
fuente
23
pip install -r requirements.txt
MrLeeh
1
He actualizado la salida para incluir la salida con el indicador -r pero todavía no puedo instalar.
Joey Yi Zhao
así que ahora lea la nueva salida y piense: no espere por nosotros.
furas
en salida ves que necesita freetype. No es un módulo de Python sino un paquete del sistema. Tienes que instalarlo usando ie. apt-getelUbuntu/Mint
furas
¿Por qué -rporque no tiene nada que ver file?
Sören

Respuestas:

61

Si está utilizando el sistema operativo Linux:

  1. Quitar matplotlib==1.3.1derequirements.txt
  2. Intenta instalar con sudo apt-get install python-matplotlib
  3. Ejecutar pip install -r requirements.txt(Python 2) o pip3 install -r requirements.txt(Python 3)
  4. pip freeze > requirements.txt

Si está utilizando el sistema operativo Windows:

  1. python -m pip install -U pip setuptools
  2. python -m pip install matplotlib
Nilesh Pansuriya
fuente
9
Hola Nilesh, bienvenido a Stack Overflow. En el futuro, incluya una explicación de lo que hacen los comandos que da en su respuesta, no se limite a decirle a la gente que ejecute comandos.
yakatz
Gracias @Nilesh. ¿Quiso decir poner 4. antes de 3.?
Anupam
No @Anupam, como en el paso 1, eliminamos "matplotlib" de requirements.txt, en el paso 4 estamos actualizando requirements.txt con un paquete recién instalado para uso futuro. el paso 3 es para instalar otros requisitos del archivo.
Nilesh Pansuriya
40

pip install -r requirements.txt para python 2.x

pip3 install -r requirements.txtpara python 3.x(en caso de que se instalen varias versiones)

Krishna Kishore Andhavarapu
fuente
Intenté ambos pero aún fallé. He publicado la salida de este comando.
Joey Yi Zhao
1
Creo que falta una dependencia requerida 'freetype' para instalar MATPLOTLIB. Intente instalar la dependencia y ejecutar pip install -r requirements.txt nuevamente.
Joshi Sravan Kumar
pipno manejará las dependencias a nivel del sistema. Tendrá que hacerlo apt-get install libfreetype6-devantes de continuar. (. Incluso se dice tan a la derecha en su salida Trate deslizándose sobre él para este tipo de errores la próxima vez, por lo general salidas de construcción son muy detallados)
FMaz
3

(Tomado de mi comentario)

pipno manejará las dependencias a nivel del sistema. Tendrá que hacerlo apt-get install libfreetype6-devantes de continuar. (Incluso lo dice directamente en su salida. Intente hojearlo en busca de errores la próxima vez, por lo general, las salidas de la compilación son muy detalladas)

FMaz
fuente
Ya instalé libfreetype6-dev. Pero pip todavía informa este error.
Joey Yi Zhao
3

Python 3:

pip3 install -r requirements.txt

Python 2:

pip install -r requirements.txt

Para obtener todas las dependencias para el entorno virtual o para todo el sistema:

pip freeze

Para enviar todas las dependencias al requirements.txt (Linux):

pip freeze > requirements.txt
tri.akki7
fuente