Мне нужно выполнить команду оболочки в программе python (у меня есть ubuntu). Более конкретно, я хочу создать граф, используя graphviz в скрипте python. Мой код
os.system("dot -Tpng graph.dot -o graph.png")
Это не работает, но если я просто набираю "dot -Tpng graph.dot -o graph.png" в командной строке, тогда все в порядке. Вы знаете, в чем проблема? Спасибо!
Изменение: не работает означает, что ничего не происходит, ошибок нет.
Вывод из "dot -v -Tpng graph.dot -o graph.png"
dot - graphviz version 2.26.3 (20100126.1600)
Активированная библиотека плагинов: libgvplugin_pango.so.6 Использование textlayout: textlayout: cairo Активированная библиотека плагина: libgvplugin_dot_layout.so.6 Использование layout: dot: dot_layout Использование render: cairo: cairo Использование устройства: png: cairo: cairo Файл конфигурации плагина: /usr/lib/graphviz/config6 был успешно загружен. 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 устройство: 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
Я понял проблему. Я должен закрыть файл graph.dot перед выполнением команды.
os.system('/usr/bin/which dot')
?