ausführen Ich versuche, pygraphviz und networkx in Python (v 2.7) zu verwenden, um eine Netzwerkzuordnung zu erstellen. Ich fand ein Skript, das sehr nützlich, auf Stackoverflow aussieht:Wie nato von pygraphviz unter Windows
import networkx as nx
import numpy as np
import string
import pygraphviz
dt = [('len', float)]
A = np.array([(0, 0.3, 0.4, 0.7),
(0.3, 0, 0.9, 0.2),
(0.4, 0.9, 0, 0.1),
(0.7, 0.2, 0.1, 0)
])*10
A = A.view(dt)
G = nx.from_numpy_matrix(A)
G = nx.relabel_nodes(G, dict(zip(range(len(G.nodes())),string.ascii_uppercase)))
G = nx.to_agraph(G)
G.node_attr.update(color="red", style="filled")
G.edge_attr.update(color="blue", width="2.0")
G.draw('/tmp/out.png', format='png', prog='neato')
ich einen Fehler in der letzten Zeile bekommen, im Grunde kann es nicht neato finden:
"ValueError: Program neato not found in path."
Der Fehler bezieht sich auf die agraph.py Datei für pygraphviz
, aber ich kann nichts sehen, das das Problem verursachen könnte, wenn ich durch agraph.py schaue
Irgendwelche Ideen, wie man das löst? Ich verwende Windows und IDLE für meine Codierung. Danke!
Zuerst, danke für die Antwort. Ich habe graphviz installiert. Jetzt, wenn ich mein Skript ausführe, bekomme ich diesen Fehler: Traceback (letzter Aufruf zuletzt): Datei "C:/Python27/2_5.py", Zeile 22, in G.Draw ('/ tmp/out. png ', format =' png ', prog =' neato ') Datei "C: \ Python27 \ lib \ Site-Pakete \ pygraphviz \ agraph.py", Zeile 1422, in der Zeichnung fh = self._get_fh (Pfad, 'w + b') Datei "C: \ Python27 \ lib \ Site-Pakete \ pygraphviz \ agraph.py", Zeile 1458, in _get_fh fh = Datei (Pfad, Modus = Modus) IOError: [Errno 2] Keine solche Datei oder Verzeichnis: '/tmp/out.png' –
Amlanza
Es hat ein Problem beim Erstellen der Datei /tmp/out.png. Dies kann auf das Betriebssystem zurückzuführen sein./tmp ist ein normales Verzeichnis in allen Linux-Distributionen, also muss nur die Datei erstellt werden. Wenn Sie mit Windows arbeiten, ist dieses Verzeichnis wahrscheinlich nicht vorhanden, daher der Fehler (Sie versuchen, die Datei in einem Verzeichnis zu erstellen, das nicht existiert). Wenn Sie es nur mit "out.png" ersetzen, ohne das Verzeichnis anzugeben, sollte es im aktuellen Verzeichnis erstellt werden, ohne sich zu beschweren. Lass es mich wissen, wenn das den Trick macht! – EnricoGiampieri