Ich benutze networkx mit Python 3.4, und ich bekomme einen seltsamen Fehler, wenn ich versuche, die erreichbaren Knoten zu finden. Ich denke, es hat etwas mit einer optionalen Eigenschaft der Knoten zu tun, die ich vorher gesetzt habe. Dieser minimale Code repliziert den Fehler:Fehler mit networx.descendants() wenn Knoten Tags haben
import networkx as nx
G = nx.Graph()
nodes = ["A", "B", "C", "D", "E"]
G.add_nodes_from(nodes)
G.add_edge("A", "B")
G.add_edge("A", "C")
G.add_edge("A", "D")
G.add_edge("B", "E")
for node in nodes :
G[node]['occurrences'] = 1
print("Now computing nodes reachable from \"A\"...")
reachableNodes = nx.descendants(G, "A")
print("List of reachable nodes:", reachableNodes)
Die Ausgabe lautet:
Now computing nodes reachable from "A"...
Traceback (most recent call last):
File "exampleStackOverflow.py", line 17, in <module>
reachableNodes = nx.descendants(G, "A")
File "/usr/local/lib/python3.4/dist-packages/networkx/algorithms/dag.py", line 42, in descendants
des = set(nx.shortest_path_length(G, source=source).keys()) - set([source])
File "/usr/local/lib/python3.4/dist-packages/networkx/algorithms/shortest_paths/generic.py", line 239, in shortest_path_length
paths=nx.single_source_shortest_path_length(G,source)
File "/usr/local/lib/python3.4/dist-packages/networkx/algorithms/shortest_paths/unweighted.py", line 63, in single_source_shortest_path_length
nextlevel.update(G[v]) # add neighbors of v
File "/usr/local/lib/python3.4/dist-packages/networkx/classes/graph.py", line 407, in __getitem__
return self.adj[n]
KeyError: 'occurrences'
Nun, wenn ich die Zeilen kommentieren, wenn ich den Tag ‚Ereignisse‘ gesetzt, ich habe das erwartete Ergebnis:
Now computing nodes reachable from "A"...
List of reachable nodes: {'B', 'D', 'C', 'E'}
Mache ich etwas falsch?
Sehr nützlich. Irgendwelche Links zu relevanten Dokumenten? – Gerrat
Ich habe einen Link zum relevanten networkx Tutorial Abschnitt hinzugefügt. – Aric