[PYTHON] Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.

** Lesesitzung "Erste Mustererkennung" ** steht kurz vor dem Ende, daher lautet das Thema in der nächsten Reihe "[Practical Computer Vision]". (http://www.oreilly.co.jp/books/9784873116075/) ”ist erschienen.

Es ist nur in meinem Haus aufbewahrt, also dachte ich, ich würde es herausziehen und eine Weile lesen, aber ich war süchtig danach, die Umgebung zu schaffen. Und aus einem Grund, der nicht wirklich wichtig ist. Erbärmlich ...

Machen Sie sich eine Notiz, damit niemand der gleichen Brunft folgt.

Umgebung

Vor der Installation von PIL

Ich kann es per Pip installieren, PIL installieren, ohne an irgendetwas zu denken, aber wenn ich die JPEG-Datei lese und versuche, sie mit Pylab anzuzeigen, erhalte ich die folgende Fehlermeldung.

IOError: decoder jpeg not available

Mir wurde gesagt, dass es keinen JPEG-Decoder gibt. Als ich ihn googelte, schien es, dass libjpeg-dev installiert werden muss. Als ich jedoch sudo apt-get libjpeg-dev installierte, war ich wütend auf "Ich habe es bereits!".

Wenn libjpeg-dev mit apt installiert wird, wird libjpeg.so unter / usr / lib / x86_64-linux-gnu / erstellt, aber es scheint, dass dieser Ordner bei der Installation von PIL mit pip nicht angezeigt wird.

Setzen wir also einen symbolischen Link, den Sie von pip aus sehen können.

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so

Nach dem Verknüpfen habe ich PIL neu installiert und es hat gut funktioniert.

Referenz

http://atasatamatara.hatenablog.jp/entry/20120723/1343044059

Vor der Installation von matplotlib

matplotlib kann auch mit pip eingegeben werden. Numpy ist wegen der Abhängigkeit ebenfalls enthalten.

Bei der Ausführung von pylab.show () wird jedoch nichts angezeigt. Ich bekomme nicht einmal einen Fehler. Was ist das? ?? ??

Nach der Untersuchung scheint das Backend für die Bildschirmanzeige entsprechend eingestellt zu sein. Wo es eingestellt werden soll, ist eine Datei namens matplotlibrc. Der folgende Befehl teilt Ihnen den Standort mit.

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

matplotlibrc


backend      : agg

Mit einem Backend namens agg können Sie in eine Datei schreiben, aber kein Fenster öffnen und auf dem Bildschirm anzeigen.

Eigentlich ist matplotlib auch in systemweitem Python enthalten, aber wenn ich mir dieses matplotlibrc anschaue, ist das Backend Tkagg. Es sieht so aus, als würden Sie Tkinter verwenden.

Also werde ich von agg nach Tkagg umschreiben. Dann trat diesmal der folgende Fehler auf.

No module named _tkagg

Es scheint, dass beim Kompilieren von matplotlib keine Datei mit dem Namen _tkagg.py generiert wird. Um dies zu lösen, müssen Sie tk-dev installieren.

sudo apt-get install tk-dev

Dieses Mal befindet es sich unter / usr / lib, sodass kein Link eingefügt werden muss. Wenn Sie matplotlib nach der Installation von tk-dev neu installieren, ist dies in Ordnung.

Zusammenfassung

Ich habe es in der Reihenfolge geschrieben, in der ich verschiedene Dinge durch Herumtasten ausprobiert habe, aber es sollte so eingerichtet sein.

sudo apt-get install libjpeg tk-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so

pip install PIL
pip install matplotlib

vim /path/to/your/matplotlibrc
###Schreiben Sie das Backend in Tkapp um

Übrigens, wenn Sie googeln, werden die Informationen so ausgegeben, wie sie sind, aber weil ich entschieden habe, dass "Wenn es sich um eine systemweite Matplotlib handelt, werden sie mit tk korrekt angezeigt, sodass es keinen Grund gibt, warum tk-dev nicht enthalten ist" und dies nicht bestätigt haben. Ich bin süchtig danach.

Ich erinnere mich nicht, wie es passiert ist, aber vielleicht war es passend, als ich es systemweit einfügte, und da ich es binär eingefügt habe, war _tkagg sogar ohne tk-dev enthalten ...

Recommended Posts

Als ich versuchte, PIL und matplotlib in einer virtuellen Umgebung zu installieren, war ich süchtig danach.
Wovon ich beim Erstellen von Webanwendungen in einer Windows-Umgebung abhängig war
Wovon ich süchtig war, als ich mit riesigen Dateien in einer Linux 32-Bit-Umgebung umging
Als ich versuchte, mithilfe von Anforderungen in Python zu kratzen, war ich süchtig nach SSLError, also einem Workaround-Memo
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Beachten Sie, dass ich süchtig danach war, TensowFlow einzurichten
Als ich in IPython versuchte, den Wert zu sehen, war es ein Generator, also kam ich auf ihn, als ich frustriert war.
Wovon ich süchtig war, als ich Klassenvererbung und gemeinsame Tabellenvererbung in SQLAlchemy kombinierte
Ich bin gestolpert, als ich versucht habe, Basemap zu installieren, also ein Memorandum
Als ich versuchte, eine Rails-Umgebung auf WSL2 (Ubuntu 20.04LTS) zu erstellen, stolperte ich und fiel hin.
Eine Geschichte, nach der ich süchtig war, als ich in Go nil als Funktionsargument angab
Ein Memorandum beim automatischen Erwerb mit Selen
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Ich war süchtig nach falschen Klassenvariablen und Instanzvariablen in Python
Ich war süchtig danach, mysqlclient zu installieren
Ich habe versucht, virtualenv in die Cygwin-Umgebung zu integrieren
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
Eine Geschichte, die mich süchtig nach dem Versuch machte, LightFM unter Amazon Linux zu installieren
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Der Dateiname war in Python schlecht und ich war süchtig nach Import
[Python] Als ich versuchte, ein Dekomprimierungswerkzeug mit einer Zip-Datei zu erstellen, die ich gerade kannte, war ich süchtig nach sys.exit ()
[Einführung in json] Nein, ich war süchtig danach. .. .. ♬
Wenn ich matplotlib in Python versuche, heißt es'cairo.Context '.
Als ich versuchte, eine VPC mit AWS CDK zu erstellen, konnte ich es aber nicht schaffen
Drei Dinge, von denen ich süchtig war, als ich Python und MySQL mit Docker verwendete
Docker x Visualization hat nicht funktioniert und ich war süchtig danach, also habe ich es zusammengefasst!
Ein Hinweis, dem ich beim Ausführen von Python mit Visual Studio Code verfallen war
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Ich habe keine Angst, eine Programmierumgebung aufzubauen.
Ich habe versucht, einen Pseudo-Pachislot in Python zu implementieren
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
[Go + Gin] Ich habe versucht, eine Docker-Umgebung zu erstellen
Eine Geschichte, von der ich bei np.where süchtig war
Python: Kann in Lambda wiederholt werden
Ich war süchtig danach, logging.getLogger mit Flask 1.1.x zu versuchen
Wovon ich süchtig war, als ich Python Tornado benutzte
Ich habe versucht, Scrapy auf Anaconda zu installieren und konnte es nicht
Ich war nüchtern süchtig danach, awscli von einem in crontab registrierten Python 2.7-Skript aus aufzurufen
Beachten Sie, dass ich süchtig nach dem npm-Skript war, das in der Überprüfungsumgebung nicht übergeben wurde
Ich habe versucht, eine Umgebung mit WSL + Ubuntu + VS-Code in einer Windows-Umgebung zu erstellen
Ich habe versucht, das Telefon klingeln zu lassen, als es auf dem IoT-Post veröffentlicht wurde
Wenn ein Amateur Anti-Phasen-Musik hörte, war es verwirrend und ruhig zu besuchen.
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Ein Anfänger versuchte, eine Strichzeichnung mit einem Kettenmesser zu färben. Ich konnte es schaffen.
Memo Ein Anfänger hat versucht, eine Java-Umgebung zu erstellen und unter Ubuntu 18.04.2 LTS ins Japanische zu übersetzen.
[IOS] GIF-Animation mit Pythonista3. Ich war süchtig danach.
Ich habe den Super-Resolution-Algorithmus "PULSE" in einer Windows-Umgebung ausprobiert
Ich habe versucht, einen eindimensionalen Zellautomaten in Python zu implementieren
Als ich den AtCoder Beginner Contest ausprobierte, war es ein schreckliches Ergebnis, also schaue ich zurück
Ich war überrascht, eine nette Rezension zu erhalten, als ich Python an CheckIO und seine Erklärung schrieb
Da es Doppelgenger gab, habe ich versucht, es mit künstlicher Intelligenz zu unterscheiden (lacht) (Teil 2)
Ich habe versucht "Wie man eine Methode in Python dekoriert"
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Wovon ich süchtig war, als der Processing-Benutzer zu Python wechselte