2012-02-17 4 views
1

Possible Duplicate:
Python: Circular (or cyclic) imports
Circular dependency in PythonPython зависимостей между модулями

У меня есть пакет Python с двумя модулями, которые импортируют друг друга. То есть, в модуле А мы имеем линию

from B import b 

и в модуле B мы имеем линию

from A import a 

Когда я пытаюсь загрузить пакет, содержащий эти модули я получаю следующую ошибку

ImportError: cannot import name a

Есть ли способ избежать этой ошибки (без объединения двух модулей в один большой модуль AB)?

+0

Да, вы правы. Я пропустил это, когда искал ранее ответившие вопросы. благодаря – bandini

ответ

3
  1. Разделить их в еще более модулей - например, вы можете вынесем a в модуль своей собственной, что оба A и B зависят.

  2. Использование import A и import B вместо from ... вариантов - это сделает импорт успеха, даже если имя, которое вы хотите импортировать еще не были связаны во время импорта.

  3. Используйте импорт уровня функции в определенных местах, где вам нужны символы из другого модуля. (Мне не нравится этот вариант слишком много, но он работает.)

0

Вы не можете этого сделать, потому что у вас есть круговая ссылка. Создайте новый модуль и импортируйте его как:

from B import b 
from A import a 
Смежные вопросы