Eu descobri o problema. Eu deveria fechar o arquivo graph.dot antes de executar o comando.
Eu preciso executar o comando shell no programa python (eu tenho o Ubuntu). Mais especificamente, quero criar um gráfico usando graphviz no script python. Meu código é
os.system("dot -Tpng graph.dot -o graph.png")
Não funciona, mas se eu digitar apenas dot -Tpng graph.dot -o graph.png
na linha de comando, tudo estará bem. Você sabe qual é o problema? Obrigada!
Editar: Não funciona significa que nada acontece, não há erros.
Saída de dot -v -Tpng graph.dot -o graph.png
:
dot - graphviz version 2.26.3 (20100126.1600)
Activated plugin library: libgvplugin_pango.so.6
Using textlayout: textlayout:cairo
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Using render: cairo:cairo
Using device: png:cairo:cairo
The plugin configuration file:
/usr/lib/graphviz/config6
was successfully loaded.
render : cairo dot fig gd map ps svg tk vml vrml xdot
layout : circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
textlayout : textlayout
device : canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg pdf plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp x11 xdot xlib
loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
Eu descobri o problema. Eu deveria fechar o arquivo graph.dot antes de executar o comando.
Estranho, eu apenas tentei com o mesmo comando e ele me deu a saída esperada (esse gráfico não existe) Tem certeza que você tem
import os
Além disso, você tem certeza de que esta parte do código que executa o comando 'ponto' não está em uma condição inverídica (em uma declaração 'if' que não é verdadeira, então a parte do código depois disso nunca é executada)?