AttributeError: модуль 'graph_tool.draw' не имеет атрибута 'draw_hierarchy' возвращается при запуске моего кода, что не соответствует действительности - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь запустить скрипт, который использует графические инструменты, и код возвращает:

/usr/lib/python3/dist-packages/graph_tool/all.py:40: RuntimeWarning: Error importing draw module, proceeding nevertheless: No module named 'cairo._cairo'
  warnings.warn(msg, RuntimeWarning)
Nuclear_Overhauser_effect
['the', 'nuclear', 'overhauser', 'effect', 'noe', 'is', 'the', 'transfer', 'of', 'nuclear']
Traceback (most recent call last):
  File "/home/qhama/Desktop/hSBM_Topicmodel/graphtools_tut.py", line 39, in <module>
    model.plot(filename='tmp.png', nedges=1000)
  File "/home/qhama/Desktop/hSBM_Topicmodel/sbmtm.py", line 183, in plot
    subsample_edges=nedges, hshortcuts=1, hide=0)
  File "/usr/lib/python3/dist-packages/graph_tool/inference/nested_blockmodel.py", line 934, in draw
    return graph_tool.draw.draw_hierarchy(self, **kwargs)
AttributeError: module 'graph_tool.draw' has no attribute 'draw_hierarchy' 

Попробовал переустановить Каир и каждую зависимость

# Creating an instance of the sbtm-class

model = sbmtm()

# We have to create the word document network from the corpus
model.make_graph(texts, documents=titles)
gt.seed_rng(32)
model.fit()

# Plot the result
model.plot(filename='tmp.png', nedges=1000)
model.topics(l=1, n=20)

1 Ответ

0 голосов
/ 04 июня 2019

Если вы все еще ищете, ответ на Какие зависимости / опции установки необходимы для графического инструмента, чтобы включить draw_hierarchy? , кажется, говорит о вашей проблеме. Суть в том, что используемая вами версия, скорее всего, была скомпилирована с отсутствующими зависимостями. то есть, в дополнение к переустановке всех этих зависимостей, вам может понадобиться перекомпилировать после.

Эта ссылка отмечает эту проблему, возникающую из-за проблем с зависимостями GTK +, но я работал со всем, кроме cairo, и все еще сталкиваюсь с этой проблемой, поэтому может случиться так, что любой из пропавших может вызвать это. Чтобы проверить, не возникли ли у вас проблемы с cairo после переустановки (как и я), попробуйте import cairo в любом экземпляре Python и посмотрите, есть ли ошибки.

Моя текущая рабочая теория заключается в том, что пакет cairo по умолчанию имеет проблемы с python 3.7 и должен быть перекомпилирован, поэтому одной только переустановки недостаточно. Это еще не решено, но с помощью вышеизложенного вы можете, по крайней мере, проверить и проверить, не является ли это проблемой, с которой вы столкнулись, и если это так, возможно, попробуйте другую версию Python.

...