2015-09-04 3 views
0

В Python, когда я использую этот оператор import breze.learn.mlp, импортируйте iter_minibatches, я получаю следующие ошибки.Ошибка импорта python

Здесь iter_minibatches - это функция, определенная в mlp.py.

Traceback (most recent call last): 
    File "/home/vinod/PycharmProjects/MLPonTheano/MLPbreze.py", line 15, in <module> 
    from breze.learn.mlp import Mlp, FastDropoutNetwork 
    File "/home/vinod/breze/breze/learn/mlp.py", line 22, in <module> 
    from breze.learn.base import SupervisedModel 
    File "/home/vinod/breze/breze/learn/base.py", line 21, in <module> 
    from breze.learn.mlp import iter_minibatches 
ImportError: cannot import name iter_minibatches 
+4

* "Здесь' iter_minibatches' - это функция, определенная в mlp.py "* - вы можете это доказать? – Sam

+0

Что делает 'dir (breze.learn.mlp)' output? – IanAuld

+0

Защиту iter_minibatches (LST, batch_size, тускнеет, n_cycles = false, random_state = None): печати 'внутри ITER мини партий:', LST [0] партии = [minibatches (я, batch_size, д) для I, D в zip (lst, dims)] .... –

ответ

4

У вас есть круглый импорт; mlp импорт base импорт mlp:

# executing mlp.py 
    File "/home/vinod/breze/breze/learn/mlp.py", line 22, in <module> 
    from breze.learn.base import SupervisedModel 
# executing base.py 
    File "/home/vinod/breze/breze/learn/base.py", line 21, in <module> 
# this tries to import from mlp again, but mlp isn't done yet 
    from breze.learn.mlp import iter_minibatches 

Любая строка после from breze.learn.base import SupervisedModel не будет еще были выполнены таким образом импортировать любой объект, определенный этими линиями не получится.

Избегайте циклических импортов, или, если они у вас есть, задерживайте импорт в одном из модулей, чтобы убедиться, что объекты, которые вам нужны в другом, определены.

+0

Хороший улов @MartijnPieters! – Sam

+0

Я использую ** из breze.learn.mlp импортировать iter_minibatches ** в base.py и этот импорт ** из breze.learn.base import SupervisedModel ** используется в mlp.py ... Можете ли вы предложить мне как решить его .... Я новичок в python –

+0

@MartijnPieters Я столкнулся с этой проблемой только после добавления из breze.learn.mlp импорта iter_minibatches в base.py –