Verwendung von require.txt zum Installieren aller Abhängigkeiten in einem Python-Projekt

83

Ich bin neu in Python. Kürzlich habe ich ein Projekt von Python geschrieben und es erfordert eine Installation. Ich führe den folgenden Befehl aus, um zu installieren, habe aber einen Fehler erhalten.

# 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

Ich habe auf Google gesucht und diesen Link gefunden, http://stackoverflow.com/questions/28167987/python-pip-trouble-installing-from-requirements-txtaber ich verstehe nicht ganz, was die Lösung in diesem Beitrag ist.

Unten ist meine Anforderung.txt-Datei:

# 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

Gibt es eine einfache Möglichkeit, alle erforderlichen Abhängigkeiten in diesem Python-Projekt zu installieren?

EDIT1

Unten ist die Ausgabe von 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/

Ich habe bereits installiert, libfreetype6-devaber der Befehl pip meldet immer noch, dass diese Abhängigkeit fehlt.

# 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
quelle
23
pip install -r requirements.txt
MrLeeh
1
Ich habe die Ausgabe so aktualisiert, dass sie die Ausgabe mit dem Flag -r enthält, kann sie jedoch immer noch nicht installieren.
Joey Yi Zhao
Lesen Sie jetzt die neue Ausgabe und denken Sie nach - warten Sie nicht auf uns.
Furas
In der Ausgabe sehen Sie, dass es braucht freetype. Es ist kein Python-Modul, sondern ein Systempaket. Sie müssen es mit dh installieren. apt-getonUbuntu/Mint
furas
Warum, -rweil es nichts damit zu tun hat file?
Sören

Antworten:

61

Wenn Sie ein Linux-Betriebssystem verwenden:

  1. Entfernen matplotlib==1.3.1vonrequirements.txt
  2. Versuchen Sie mit zu installieren sudo apt-get install python-matplotlib
  3. Führen Sie pip install -r requirements.txt(Python 2) oder pip3 install -r requirements.txt(Python 3) aus.
  4. pip freeze > requirements.txt

Wenn Sie ein Windows-Betriebssystem verwenden:

  1. python -m pip install -U pip setuptools
  2. python -m pip install matplotlib
Nilesh Pansuriya
quelle
9
Hallo Nilesh, willkommen bei Stack Overflow. Bitte geben Sie in Zukunft an, was die Befehle, die Sie in Ihrer Antwort angeben, bewirken. Sagen Sie den Leuten nicht nur, dass sie Befehle ausführen sollen.
Yakatz
Danke @Nilesh. Meinten Sie, 4. vor 3. zu setzen?
Anupam
Nein @Anupam. Wie in Schritt 1 haben wir "matplotlib" aus der Datei "resources.txt" entfernt. In Schritt 4 aktualisieren wir die Datei "resources.txt" mit einem neu installierten Paket für die zukünftige Verwendung. Schritt 3 dient zum Installieren anderer Anforderungen aus der Datei.
Nilesh Pansuriya
40

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

pip3 install -r requirements.txtfür python 3.x(falls mehrere Versionen installiert sind)

Krishna Kishore Andhavarapu
quelle
Ich habe beide ausprobiert, bin aber trotzdem gescheitert. Ich habe die Ausgabe dieses Befehls veröffentlicht.
Joey Yi Zhao
1
Ich denke, es fehlt eine erforderliche Abhängigkeit 'freetype' für die Installation von MATPLOTLIB. Versuchen Sie erneut, die Abhängigkeit zu installieren und pip install -r require.txt auszuführen.
Joshi Sravan Kumar
pipAbhängigkeiten auf Systemebene werden nicht behandelt. Sie müssen, apt-get install libfreetype6-devbevor Sie fortfahren. (Es steht sogar direkt in Ihrer Ausgabe. Versuchen Sie, es beim nächsten Mal nach solchen Fehlern zu
durchsuchen.
3

(Aus meinem Kommentar entnommen)

pipAbhängigkeiten auf Systemebene werden nicht behandelt. Sie müssen, apt-get install libfreetype6-devbevor Sie fortfahren. (Dies steht sogar direkt in Ihrer Ausgabe. Versuchen Sie, das nächste Mal nach solchen Fehlern zu suchen. In der Regel sind die Build-Ausgaben sehr detailliert.)

FMaz
quelle
Ich habe libfreetype6-dev bereits installiert. Pip meldet diesen Fehler jedoch weiterhin.
Joey Yi Zhao
Hast du diesen Fehler gesehen? github.com/matplotlib/matplotlib/issues/3029
FMaz
3

Python 3:

pip3 install -r requirements.txt

Python 2:

pip install -r requirements.txt

So erhalten Sie alle Abhängigkeiten für die virtuelle Umgebung oder für das gesamte System:

pip freeze

So verschieben Sie alle Abhängigkeiten in die Datei "resources.txt" (Linux):

pip freeze > requirements.txt
tri.akki7
quelle