python: os.system не выполняет команду оболочки

1

Мне нужно выполнить команду оболочки в программе 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

  • 3
    Хотите уточнить, что означает "Это не работает"? Пожалуйста, предоставьте полное отслеживание любых ошибок.
  • 1
    Каковы выходные данные os.system('/usr/bin/which dot') ?
Показать ещё 7 комментариев
Теги:
graphviz

1 ответ

2
Лучший ответ

Я понял проблему. Я должен закрыть файл graph.dot перед выполнением команды.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню