Не удается импортировать модули в подкаталог

1

У меня есть пакет, с которого я пытаюсь импортировать определенные модули, но не могу. Способ структурирования моего каталога:

top/
    main_script.py
    middle/
        foo.py
        utils.py
        __init__.py'  

foo.py импортирует utils.py просто отлично, когда я его запускаю, однако, если я запустил main_script.py, foo.py не сможет импортировать utils.py, предоставив мне ModuleNotFoundError: Нет модуля с именем 'utils.py'

Способ импорта foo.py в main_script.py:
from middle import foo

Способ импорта utils.py в foo.py:
import utils

Если я импортирую, скажем, numpy в foo.py вместо импорта utils и запускать main_script.py, он будет импортироваться и запускаться просто отлично, однако если foo.py содержит utils, тогда запуск main_script.py завершится с ошибкой.

Любая идея о том, как исправить это, не помещая my main_script.py в середину?

Теги:
import

2 ответа

0

Попробуй это:

main_script.py

from middle import foo

print(__name__)

foo.py

from middle import utils

print(__name__)

utils.py

print(__name__)

Чтобы узнать больше об этом, просто проверьте документы

0

Было бы полезно, если бы вы могли поделиться тем, как вы импортируете в main_script.

Ваш импорт должен быть:

from middle import foo

Или же

from middle import foo, utils
  • 0
    Я бы также добавил, что в foo.py автору может потребоваться указать, что utils импортируются из middle , так что это скрипт import middle.utils as utils : import middle.utils as utils .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню