ImportError: невозможно импортировать имя 'treewidth' - PullRequest
0 голосов
/ 13 апреля 2019

Я пытался импортировать необходимые модули из библиотеки NetworkX, но он продолжает выдавать ошибку ImportError или AttributeError.

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

Я пробовал следующие вещи:

  1. Сначала я попытался импортировать способ, предложенный в документации
import networkx as nx 
from networkx.algorithms import approximation

G = nx.barbell_graph(5, 1)

decom = approximation.treewidth_min_fill_in(G)

Но это просто дает мне следующую ошибку:

AttributeError: module 'networkx.algorithms.approximation' has no attribute 'treewidth_min_fill_in'
  1. Я также попытался импортировать его напрямую, используя:
import networkx as nx

G = nx.barbell_graph(5, 1)

decom = nx.algorithms.approximation.treewidth.treewidth_min_fill_in(G) 

Но это просто дает мне следующую ошибку:

AttributeError: module 'networkx.algorithms.approximation' has no attribute 'treewidth'
  1. Тогда я нашел возможное решение здесь , и оно работает только в случае клика, но не при попытке импортировать 'treewidth'.
import networkx as nx 
from networkx.algorithms.approximation import treewidth

G = nx.barbell_graph(5, 1)

decom = treewidth.treewidth_min_fill_in(G)

Но это просто дает мне следующую ошибку:

ImportError: cannot import name 'treewidth'

Мне не удалось найти решение. Любая помощь приветствуется!

ПРИМЕЧАНИЕ. Это мой первый вопрос по SO, поэтому, пожалуйста, оставьте дополнительную информацию о формате этого вопроса.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Выполнить pip install networkx или pip install --upgrade networkx, если networkx уже установлен, а затем выполнить ваш код с Python 3.7:

import networkx

from networkx.algorithms.approximation import treewidth

treewidth.treewidth_min_fill_in()

это прекрасно работает в моей системе.Надеюсь, что это решит вашу проблему

0 голосов
/ 13 апреля 2019

Какую версию пакета networkx вы используете и как вы его установили?

Я попытался сделать pip install networkx, а затем выполнил ваш код на Python 3.7:

import networkx as nx 
from networkx.algorithms import approximation

G = nx.barbell_graph(5, 1)

decom = approximation.treewidth_min_fill_in(G)
print(decom)

и вывод:

(4, <networkx.classes.graph.Graph object at 0x1070d4ef0>)

Вы можете использовать попытку увидеть версию вашего модуля, используя:

import networkx
print(networkx.__version__)

И какие методы используются:

import networkx
from networkx.algorithms import approximation

print(dir(approximation))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...