2015-11-12 38 views
8

muszę zbudować pythonic rozwiązanie wykresu poprzez pydot a kiedy próbował uruchomić prosty kod jak:Pydot błąd: format plików „png” nie rozpoznał

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') 

który został zaprojektowany, aby zbudować prosty wykres (A -B1) w pliku png. Po zamocowaniu dużo błędów konfiguracji, teraz mam:

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 

i do tej pory nie mógł znaleźć prostą rozwiązanie moim konkretnym środowisku. Dowolna wskazówka, jak mogę to naprawić? Potrzebujesz pracować dla Pythona 2.7 i Mac OS X 10.9.

Moje obecne zainstalowane pakiety:

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 

po prostu chcieliby, aby osiągnąć ten sam wynik pokazany na https://pythonhaven.wordpress.com/2009/12/09/generating_graphs_with_pydot/

+0

Spróbuj dumping plik kropki 'write_raw' i ręcznie uruchamiając komendę, czyli' kropka -Tjpeg -o/output/file -v/your/dot/file'. Jaki jest wynik tego polecenia? – memoselyk

+0

@memoselyk Nie jestem pewien, co masz na myśli, wyrzucając plik dot za pomocą 'write_raw', ale wynik dla' dot -Tjpeg - ... 'to: ' dot - graphviz wersja 2.38.0 (20140413.2041) Format : "jpeg" nie został rozpoznany. Użyj jednego z: ' – zallaricardo

+1

Czy lista" Użyj jednego z: "jest pusta? A co z 'dot -Tjpg:'? Jak zainstalowałeś _graphviz_, z dpkg lub skompilowałeś go (z Homebrew/Macports)? Być może uderzasz w to [błąd] (http://www.graphviz.org/content/dot-jpeg-and-mavericks), spróbuj grafviz 2.39. – memoselyk

Odpowiedz

0

Można spróbować odinstalowanie pydot2 i zainstalować pydot?

$ pip uninstall pydot2 
$ pip install pydot>=1.2.3 

Bez zmian w skrypcie, mam następujący wynik

Graph