Je construis un graphe avec beaucoup de nœuds, environ 3000. J'ai écrit un simple programme python pour faire l'affaire avec graphviz, mais ça me donne une erreur de segmentation et je ne sais pas pourquoi, si le graphe est trop grand ou s'il me manque quelque chose.faute de segmentation graphviz
Le code est:
#!/usr/bin/env python
# Import graphviz
import sys
sys.path.append('..')
sys.path.append('/usr/lib/graphviz')
import gv
# Import pygraph
from pygraph.classes.graph import graph
from pygraph.classes.digraph import digraph
from pygraph.algorithms.searching import breadth_first_search
from pygraph.readwrite.dot import write
# Graph creation
gr = graph()
file = open('nodes.dat', 'r')
line = file.readline()
while line:
gr.add_nodes([line[0:-1]])
line = file.readline()
file.close()
print 'nodes finished, beginning edges'
edges = open('edges_ok.dat', 'r')
edge = edges.readline()
while edge:
gr.add_edge((edge.split()[0], edge.split()[1]))
edge = edges.readline()
edges.close()
print 'edges finished'
print 'Drawing'
# Draw as PNG
dot = write(gr)
gvv = gv.readstring(dot)
gv.layout(gvv,'dot')
gv.render(gvv,'svg','graph.svg')
et il se bloque à l'appel gv.layout()
.
Les fichiers sont somthing comme: nœuds:
node1
node2
node3
edges_ok:
node1 node2
node2 node3
On dirait que vous devriez signaler cela aux mainteneurs de Graphviz? –
Je le fais sûrement si ce n'est pas un problème lié au programmeur. – lbedogni
Avez-vous essayé de construire un fichier de points et de le traiter avec (ligne de commande) dotty? Est-ce que cela aussi segphault? – extraneon