[PYTHON] Ich habe versucht, das Blockdiagramm-Generierungswerkzeug blockdiag einzuführen

Einführung

■ Was ist Blockdiag?

Von der offiziellen Website http://blockdiag.com/ja/index.html

Die Blockdiag-Serie ist eine Gruppe von Bilderzeugungswerkzeugen, die Bilder wie Blockdiagramme aus einfachem Text generieren.

■ Was ich diesmal versucht habe

"Bilddatei aus textbasierter Definitionsdatei generieren" Ich habe es versucht.

■ Referenzseite

・ Von der offiziellen Website für CentOS 6.2 http://blockdiag.com/ja/blockdiag/introduction.html#centos-6-2

・ Von der offiziellen Website, Ausführungsmethode und Schriftarteneinstellungen http://blockdiag.com/ja/blockdiag/introduction.html#id10

▽ Andere Sie können eine Figur ohne Maus zeichnen! Ich habe mich in Blockdiag verliebt http://d.hatena.ne.jp/torazuka/20110620/blockdiag

Einführung

■ Umgebung

AWS EC2(CentOS 6.5) Python 2.6.6

■ Installation

# yum install python-setuptools python-imaging ipa-gothic-fonts
# easy_install blockdiag

▽ Aus Fehlerbehandlung 2

# yum install python-devel zlib-devel libjpeg-devel

▽ Aus der Fehlerbehandlung 4

# yum install freetype-devel.x86_64

▽ Aus Fehlerbehandlung 1

# easy_install pillow
# easy_install webcolors
# easy_install funcparserlib

▽ Aus Fehlerbehandlung 3

# easy_install -U reportlab==2.5

▽ Installationsbestätigung (Python-Paket)

# pip freeze | grep -i "blockdiag\|pillow\|webcolors\|funcparserlib"

Aufbau

■ Schriftart

▽ Wenn Sie die Schriftart zur Laufzeit angeben

$ blockdiag -f /usr/share/fonts/ipa-gothic/ipag.ttf simple.diag

▽ Bei der Definition in $ HOME / .blockdiagrc

$ vi $HOME/.blockdiagrc
--------------------
[blockdiag]
fontpath = /usr/share/fonts/ipa-gothic/ipag.ttf

Funktionsprüfung

Führen Sie den Befehl blockdiag aus, um ein Blockdiagramm zu erstellen.

■ Verzeichnis verschieben

Wechseln Sie zunächst zum Dokumentstamm des Webservers, in dem das zu erstellende Bild angezeigt werden kann.

# cd /var/www/html

■ Aus einem einfachen Blockdiagramm

http://blockdiag.com/ja/blockdiag/examples.html#simple-diagram

# vi simple.diag
-----------------
blockdiag {
   A -> B -> C -> D;
   A -> E -> F -> G;
}

・ Generieren Sie ein Blockdiagramm

# blockdiag simple.diag
# blockdiag -Tsvg simple.diag
# blockdiag -Tpdf simple.diag
* Von oben, PNG-Format, SVG-Format, PDF-Format

・ Überprüfen Sie im Browser http://example.com/simple.png 20141006_blockdiag_sample01.png

http://example.com/simple.svg 20141006_blockdiag_sample02.png

http://example.com/simple.pdf 20141006_blockdiag_sample03.png

■ Aus der Verwendung von Japanisch

http://blockdiag.com/ja/blockdiag/examples.html#mutlilingualization

# vi nippon.diag
-----------------
blockdiag admin {
   // Set M17N text using label property.
   A [label = "Ki"];
   B [label = "Akzeptiert"];
   C [label = "Wende"];
   D [label = "Fazit"];

   A -> B -> C -> D;

   // Use M17N text directly (need to quote).
Frühling->Sommer-->Herbst->Winter;

   // Use M17N text including symbol characters (need to quote).
   "Der Frühling bricht an" -> "Sommer-=Nacht" -> "Herbst.Abend" -> "Winter&sich anstrengen";
}

・ Generieren Sie ein Blockdiagramm

# blockdiag nippon.diag
# blockdiag -Tsvg nippon.diag
# blockdiag -Tpdf nippon.diag
* Von oben, PNG-Format, SVG-Format, PDF-Format

・ Überprüfen Sie im Browser

http://example.com/nippon.png 20141006_blockdiag_sample04.png

http://example.com/nippon.svg 20141006_blockdiag_sample05.png

http://example.com/nippon.pdf 20141006_blockdiag_sample06.png

Ergänzung

■ Fehlerbehandlung 1

-Wenn beim Ausführen des Befehls diag der folgende Fehler ausgegeben wird

# blockdiag simple.diag
--------------------
Traceback (most recent call last):
  File "/usr/bin/blockdiag", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module>
    working_set.require(__requires__)
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: Pillow

-Überprüfen Sie, ob das Kissen nicht installiert ist

# pip freeze | grep -i "pillow\|webcolors\|funcparserlib"
* Pip ist ein Paketverwaltungssystem in Python.

・ Installation des Kissens

# easy_install pillow

▽ Der folgende Fehler nach dem Einführen des Kissens

pkg_resources.DistributionNotFound: webcolors

・ Installation von Webfarben

# easy_install webcolors

▽ Der folgende Fehler nach dem Einführen von Webfarben

pkg_resources.DistributionNotFound: funcparserlib

・ Installation von funcparserlib

# easy_install funcparserlib

・ Einführungsbestätigung

# pip freeze | grep -i "pillow\|webcolors\|funcparserlib\|reportlab"
Pillow==2.6.0
funcparserlib==0.3.6
webcolors==1.4

■ Fehlerbehandlung 2

▽ Wenn während der Kisseninstallation der folgende Fehler ausgegeben wird

(Kürzung)
_imaging.c:3570: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘init_imaging’
error: Setup script exited with error: command 'gcc' failed with exit status 1

・ Stellen Sie die folgenden Pakete vor (aus dem Forum)

# yum install python-devel zlib-devel libjpeg-devel
------
zlib-devel-1.2.3-29.el6.x86_64
libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64
python-devel-2.6.6-52.el6.x86_64

・ Gegenmaßnahme, folge dem folgenden Pfad (aus dem Forum)

# export CFLAGS=-Qunused-arguments
# export CPPFLAGS=-Qunused-arguments
# easy_install pillow

■ Fehlerbehandlung 3

▽ Wenn Sie kein Blockdiagramm im PDF-Format erstellen können

# blockdiag -Tpdf simple.diag
ERROR: unknown format: PDF

▽ Installieren Sie reportlab

easy_install -U reportlab==2.5
# python
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)

>>> import reportlab
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/reportlab-3.1.8-py2.6-linux-x86_64.egg/reportlab/__init__.py", line 11, in <module>
    raise ImportError("""reportlab requires Python 2.7+ or 3.3+; 3.0-3.2 are not supported.""")
ImportError: reportlab requires Python 2.7+ or 3.3+; 3.0-3.2 are not supported.

■ Fehlerbehandlung 4

▽ Wenn Sie versuchen, ein Beispielblockdiagramm mit Japanisch zu erstellen

# blockdiag nippon.diag
ERROR: The _imagingft C module is not installed

▽ Referenzseite [Python] Wenn PIL einen Importfehler von _imagingft ausgibt http://d.hatena.ne.jp/pashango_p/20110919/1316408103

Der Punkt ist, dass FreeType2 beim Kompilieren von PIL nicht installiert wurde. Installieren Sie unter Linux (OpenSuse) das Paket "freetype2-devel" und anschließend PIL, um das Problem zu lösen.

▽ Installieren Sie freetype-devel

# yum install freetype-devel.x86_64

▽ PIL deinstallieren / installieren (Von der offiziellen Website) Neuinstallation des PIL-Pakets

# easy_install -m PIL
# \rm -rf /usr/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg

# easy_install PIL

▽ Kissen wieder einbauen

# easy_install -m pillow
# \rm -rf /usr/lib/python2.6/site-packages/Pillow-2.6.0-py2.6-linux-x86_64.egg

# easy_install pillow

▽ Nach den obigen Einstellungen wurde der Befehl bei erneuter Ausführung erfolgreich im PDF-Format ausgegeben.

# blockdiag nippon.diag

# ls -l nippon.pdf
-rw-r--r--1 Wurzel Wurzel 20415 6. Oktober 16:47 2014 nippon.pdf

Das ist es.

Recommended Posts

Ich habe versucht, das Blockdiagramm-Generierungswerkzeug blockdiag einzuführen
Fortsetzung: Ich habe versucht, das Blockdiagramm-Generierungswerkzeug blockdiag einzuführen
Ich habe versucht, Pylint vorzustellen
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
Ich habe versucht, den Befehl umask zusammenzufassen
Ich versuchte das Weckwort zu erkennen
Ich habe das OSS-Visualisierungstool superset ausprobiert
Ich habe versucht, die grafische Modellierung zusammenzufassen.
Ich habe versucht, das Umfangsverhältnis π probabilistisch abzuschätzen
Ich habe versucht, die COTOHA-API zu berühren
Ich habe Web Scraping versucht, um die Texte zu analysieren.
Ich habe versucht, beim Trocknen der Wäsche zu optimieren
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Qiita Job Ich habe versucht, den Job zu analysieren
LeetCode Ich habe versucht, die einfachen zusammenzufassen
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht zu debuggen.
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Als ich versuchte, Python3 in Atom einzuführen, blieb ich stecken
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, das Spiel in der J League vorherzusagen (Datenanalyse)
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, die Sündenfunktion mit Chainer zu approximieren
[TensorFlow] Ich habe versucht, KI in Fahrzeugeisen einzuführen
Ich habe versucht, Pytest in die eigentliche Schlacht zu bringen
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, die Methode zur Mittelung der Dollarkosten zu simulieren
Ich habe versucht, die nicht negative Matrixfaktorisierung (NMF) zu wiederholen.
Ich habe versucht, die Sprache mit CNN + Melspectogram zu identifizieren
Ich habe versucht, das Wissensdiagramm mit OpenKE zu ergänzen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, ein Konfigurationsdiagramm mit Diagrammen zu zeichnen
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
[Python] Ich habe versucht, das Array, die Wörterbuchgenerierungsmethode, die Schleifenmethode und die Listeneinschlussnotation zusammenzufassen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, die Umrisse von Big Gorilla herauszufinden
Ich habe versucht, den für TensorFlow geschriebenen Code nach Theano zu portieren
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Emotionen des gesamten Romans "Wetterkind" zu analysieren
[Erste COTOHA-API] Ich habe versucht, die alte Geschichte zusammenzufassen
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, PredNet zu lernen
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe versucht, die Zugverspätungsinformationen mit LINE Notify zu benachrichtigen
Ich habe versucht, die Anzeigenoptimierung mithilfe des Banditenalgorithmus zu simulieren
Ich habe versucht, SVM zu organisieren.