pip install matplotlib: "keine pkg-config"

7

Wenn ich pip install matplotlib (innerhalb eines virtualenv) starte, sind die ersten Zeilen der Ausgabe:

%Vor%

Hinweis

  1. die "no pkg-config" und
  2. die fehlende Qt-Bibliothek.

Erstens, im Gegensatz zu der obigen Ausgabe, ist pkg-config tatsächlich installiert und auf dem PATH :

%Vor%

Zweitens ist qt in demselben Verzeichnis verfügbar, in dem freetype und libpng gefunden wurden:

%Vor%

Meine Frage besteht aus drei Teilen:

  
  1. Wo bekommt pip install matplotlib das basedirlist (3. Zeile der obigen Ausgabe)?
  2.   
  3. Was muss ich anders machen, damit pip install matplotlib pkg-config findet?
  4.   
  5. Was muss ich anders machen, damit pip install matplotlib qt findet?
  6.   
    
kjo 20.12.2012, 20:23
quelle

5 Antworten

11
%Vor%     
Grzegorz Pawełczuk 13.01.2014 16:17
quelle
6

Installieren Sie einfach Freetype-Schriften, um matplotlib zu erhalten.

%Vor%

Alle matplotlib-Dateien werden in /usr/local/lib/python2.7/site-packages/ installiert. Auch wenn Sie mit dem Pip-Installationsprogramm installieren möchten, müssen Sie das Problem mit der Free- type-Schriftart beheben. Dies kann wie oben beschrieben geschehen.

    
Arun Jayapal 15.11.2013 15:23
quelle
1

Ich kann Ihre spezifischen Fragen nicht stellen, aber mein pip install matplotlib sah neulich sehr ähnlich aus. Nach fünf Stunden, in denen ich meinen Kopf gegen die Wand knallte, funktionierte diese Lösung für mich (von practicalcomputing.org

)

Ich habe diesen Befehlssatz zum Einrichten von Simlinks erhalten:

%Vor%

Es löst nicht alle Ihre Probleme, aber es hat mein pkg-config-Problem (unter anderem) gelöst. Vielleicht würde eine ähnliche Verbindung mit QT helfen.

    
Leo Mizuhara 02.01.2013 21:47
quelle
1

Alte Frage, aber wollte einige mögliche hilfreiche Krümel hinterlassen.

Ich habe gerade ein ähnliches Problem mit Ubuntu 12.04 behandelt, nachdem ich versucht hatte, eine Anwendung manuell zu installieren, die auf einer Reihe von Python-Bindungen basierte, die manuell in einem virtualenv installiert wurden. Die Python-Bindings wurden eindeutig an einer geeigneten Stelle in meinem virtualenv installiert, aber das Installationsprogramm konnte sie einfach nicht mit pkg-config finden.

Also, um die ursprünglichen Fragen zu beantworten:

  1. Wo bekommt pip install matplotlib diesen basedirlist (3. Zeile der obigen Ausgabe)?
    • Nicht sicher, aber ich vermute, das könnte etwas sein, dass setup.py von matplotlib nach der Erkennung Ihres Betriebssystems / Ihrer Distribution / Version fest codiert wurde.
  2. Was muss ich anders machen, damit pip install matplotlib pkg-config findet?
    • Ich bin mir ziemlich sicher, dass es pkg-config gut findet; es findet nur keine nützliche Information für freetype2 und libpng .
  3. Was muss ich anders machen, damit pip install matplotlib qt findet?
    • Das alles basiert auf Ubuntu 12.04.
    • Wenn Sie python-qt4 global installieren und ein virtualenv mit --system-site-packages enabled erstellen, sollte matplotlib glücklich sein, auch wenn es bedeutet, dass Ihre globale Umgebung mit Modulen verunreinigt wird. Aber ich war nicht in der Lage, pip zu bekommen, etwas nützliches zu tun, wenn ich versuche, PyQt4 oder python-qt in einem virtualenv zu installieren.
    • Durch die Installation von libqt4-dev sollten auch alle Abhängigkeitsprobleme behoben werden, wenn Sie etwas bauen, das auf Qt4 basiert.
    • Wenn das nicht funktionierte und die Antworten von anderen hier nicht weiterhelfen, könnte das Licht ins Dunkel bringen, warum Pip unglücklich ist:
      • %Code%
          

        Auf den meisten Systemen sucht pkg-config nach / usr / lib / pkgconfig, / usr / teilen / pkgconfig, / usr / local / lib / pkgconfig und / usr / local / share / pkgconfig für diese Dateien. Außerdem wird in der durch Doppelpunkt getrennten (in Windows durch Semikolon getrennte) Liste der Verzeichnisse gesucht, die von der Umgebungsvariablen PKG_CONFIG_PATH angegeben werden.

      •   
      • man pkg-config sucht nach * .pc Dateien; Die Tatsache, dass Sie diese Abhängigkeiten irgendwo gefunden haben, bedeutet nicht, dass pkg-config irgendwelche * .pc Dateien in diesen Verzeichnissen findet.
      •   
      • Wie auf der man-Seite angegeben, müssen Sie, wenn Ihre Pakete an lustigen Orten installiert sind, pkg-config entsprechend einstellen.
      •   
      • Wenn Sie Ihre Pakete in Ihrem virtualenv installiert haben, müssen Sie sicherstellen, dass die Aktivierung / Deaktivierung Ihrer virtualenv-Befehle PKG_CONFIG_PATH entsprechend aktualisiert. Die einzige Möglichkeit, dies zu erreichen, war das Ändern des PKG_CONFIG_PATH -Skriptes in meinem virtualenv.   
        • Sie können den vorhandenen Code kopieren, der ein bin/activate enthält, bevor Sie _OLD_VIRTUAL_PATH bei der Aktivierung aktualisieren und nach dem Deaktivieren wieder zu PATH zurückkehren
        •   
        • Beachten Sie, dass der vorhandene Code zum Zeitpunkt dieses Posts nicht perfekt ist, da Sie, wenn Ihr _OLD_VIRTUAL_PATH zu Beginn leer war, ein wenig mehr Logik benötigen, um sicherzustellen, dass es bei der Deaktivierung gelöscht wird
        •   
      •   
    •   
  4.   
jasterm007 04.12.2013 10:45
quelle
0

Ich hatte einen fast identischen Fehler. Ich habe die Fehler weiter unten durchgesehen, und es scheint, als wäre das Problem bei freetype2.

Ich hatte ähnliche frustrierende Probleme mit anderen Paketen, die Freetype verwenden. Der Kompilierfehler kam für mich aus folgendem:

/ usr / local / include / freetype2 / freetype / *. h sind die Freetype-Dateien.

/ usr / local / include ist das Suchverzeichnis.

-Ifreetype / *. h ist das Flag, das an den Compiler übergeben wird.

Das Problem ist subtil, aber ich konnte Matplotlib kompilieren (was ehrlich gesagt ungefähr alles ist, was mir wirklich wichtig ist), indem ich / usr / local / include / freetype2 / freetype - & gt; / usr / local / include / freetype.

Hoffentlich wird dies jedem helfen, der darüber stolpert!

    
John H. 10.05.2013 01:58
quelle