Команда Graphviz '[' dot ',' -Tdot ']' вернула ненулевой статус выхода -11 - PullRequest
0 голосов
/ 27 августа 2018

Я хочу извлечь координаты, рассчитанные для моего графика в Graphviz. Тем не менее, я сталкиваюсь с следующей ошибкой в ​​Python 2.7 и Graphviz 0.9:

Graphviz command '['dot', '-Tdot']' returned non-zero exit status -11

Я не могу найти документацию по этим кодам ошибок. Ниже код, который я использую:

gvz = GraphUtils.toGraphvizGraph(graph)
parsed_dot = gvz.pipe('dot')

Первая строка превращает мое собственное представление графа в экземпляр Graphviz Digraph.

result = Digraph()

# By hashing the ids, we get rid of any potential special characters graphviz does not like
# A graphviz ID always needs to start with a character
for node in graph.nodes.to_dict(orient='records'):
    result.node('id_{}'.format(abs(hash(node[node_name_key]))), 'label for width')
# END LOOP

for edge in graph.edges.to_dict(orient='records'):
    result.edge('id_{}'.format(abs(hash(edge[edge_source_key]))), 'id_{}'.format(abs(hash(edge[edge_target_key])), edge[edge_label_key]))
# END LOOP
return result

Вторая строка преобразует график в ТОЧКУ, в которой содержатся нужные мне координаты. Тем не менее, именно здесь происходит моя ошибка.

Во время тестирования я обнаружил, что иногда идентификаторы моего узла будут содержать недопустимые символы (, как определено здесь ). Я исключил эти случаи, преобразовав все свои идентификаторы в хэши. Теперь все мои идентификаторы узлов выглядят так:

['id_7598267142946574759', 'id_2914022568081909736', 'id_2112657658742367456', 'id_2416843868423017323'] 

Это устранило ошибку для некоторых моих графиков, но не для всех. Так как код ошибки остается прежним, я думаю, что с этими идентификаторами все еще должно быть что-то не так. Однако, поскольку код ошибки фактически нигде не определен, возможно, я смотрю не в ту сторону. Чего мне не хватает?

...