2015-11-12 33 views
8

Ho bisogno di costruire una soluzione grafico pythonic attraverso pydot e quando ha cercato di eseguire un semplice codice come:Pydot errore: Formato di file "png" non riconosciuto

import pydot 

graph = pydot.Dot(graph_type='graph') 
i=1 
edge = pydot.Edge("A", "B%d" % i) 
graph.add_edge(edge) 
graph.write_png('graph.png') 

che è stato progettato per costruire un grafico semplice (A -B1) sul file png. Dopo aver sistemato un sacco di errori di configurazione, ora ho:

Traceback (most recent call last): 
    File "/Users/zallaricardo/Documents/Python/test_png.py", line 7, in <module> 
    graph.write_png('graph.png') 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1809, in <lambda> 
    lambda path, f=frmt, prog=self.prog : self.write(path, format=f, prog=prog)) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 1911, in write 
    dot_fd.write(self.create(prog, format)) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pydot.py", line 2023, in create 
    status, stderr_output)) 
pydot.InvocationException: Program terminated with status: 1. stderr follows: Format: "png" not recognized. Use one of: 

logout 

e fino ad ora non riusciva a trovare una soluzione dritto al mio ambiente particolare. Qualche suggerimento su come posso ripararlo? È necessario lavorare per python 2.7 e mac os x 10.9.

mie attuali pacchetti installati:

cycler==0.9.0 
decorator==4.0.4 
graphviz==0.4.7 
matplotlib==1.5.0 
networkx==1.10 
numpy==1.10.1 
pydot2==1.0.33 
pyparsing==1.5.7 
PyPDF2==1.25.1 
python-dateutil==2.4.2 
pytz==2015.7 
six==1.10.0 
wheel==0.26.0 

Vorrei solo per raggiungere lo stesso risultato mostrato in https://pythonhaven.wordpress.com/2009/12/09/generating_graphs_with_pydot/

+0

Prova dump del file di punti con 'write_raw', ed eseguendo il comando manuale, vale a dire' dot -Tjpeg -o/output/file -v/your/dot/file'. Qual è l'output di quel comando? – memoselyk

+0

@memoselyk Non sono sicuro di cosa intendi scaricando il file con dot 'write_raw' ma l'output per' dot -Tjpeg - ... 'è: ' dot - graphviz versione 2.38.0 (20140413.2041) Formato : "jpeg" non riconosciuto. Utilizzare uno di: ' – zallaricardo

+1

L'elenco' Use one of: 'è vuoto? Che dire di 'dot -Tjpg:'? Come hai installato _graphviz_, da un dpkg o lo hai compilato (con Homebrew/Macports)? Forse stai colpendo questo [bug] (http://www.graphviz.org/content/dot-jpeg-and-mavericks), prova graphviz 2.39. – memoselyk

risposta

0

Potresti provare a disinstallare e installare pydot2pydot?

$ pip uninstall pydot2 
$ pip install pydot>=1.2.3 

Senza alcun cambiamento nella sceneggiatura, ho ottenuto il seguente output

Graph