ikamensh / pydolons

Other
3 stars 0 forks source link

Проблема с импортом пакета, возможно циклический импорт #13

Closed reef425 closed 5 years ago

reef425 commented 6 years ago

Вывод в лог


Traceback (most recent call last):
  File "launch.py", line 3, in <module>
    from character_creation.Character import Character
  File "/pydolons/character_creation/Character.py", line 3, in <module>
    from game_objects.battlefield_objects import BaseType, Unit, CharAttributes
  File "/pydolons/game_objects/battlefield_objects/__init__.py", line 4, in <module>
    from game_objects.battlefield_objects.Unit import Unit
  File "/pydolons/game_objects/battlefield_objects/Unit.py", line 4, in <module>
    from game_objects.items import Inventory, Equipment, Weapon
  File "/pydolons/game_objects/items/__init__.py", line 7, in <module>
    from game_objects.items.WearableItem import WearableItem
  File "/pydolons/game_objects/items/WearableItem.py", line 3, in <module>
    from mechanics.events import ItemDestroyedEvent
  File "/pydolons/mechanics/events/__init__.py", line 25, in <module>
    from mechanics.events.MovementEvent import MovementEvent
  File "/pydolons/mechanics/events/MovementEvent.py", line 3, in <module>
    from battlefield import Cell
  File "/pydolons/battlefield/__init__.py", line 2, in <module>
    from battlefield.Battlefield import Battlefield
  File "/pydolons/battlefield/Battlefield.py", line 4, in <module>
    import game_objects.battlefield_objects as bf_objs
AttributeError: module 'game_objects' has no attribute 'battlefield_objects'
reef425 commented 6 years ago

Проблему устранил путем перенесения импорта пакета в метод.

Модуль battlefield/Battlefield.py Метод


def distance(self, one, another):
        import game_objects.battlefield_objects as bf_objs
        ***
        pass
reef425 commented 6 years ago

Предположительно в одном из импортированных модулей game_objects/battlefield_objects Существует ссылка на еще не созданный объект Battlefield.py

ikamensh commented 5 years ago

Известные случаи этой проблемы исправлены