Относительный импорт не работал на Python, работал раньше - PullRequest
0 голосов
/ 22 января 2020

Мой относительный импорт перестал работать, и я попробовал немало. Я действительно хочу использовать относительный импорт, и он просто не работает для меня.

Мой проект выглядит так:

package/
    __init__.py
    subpackage1/
        __init__.py
        module1.py
        module2.py
     tests/
         __init__.py
         test_module1.py

Так что, когда я запускаю test_module1, он не работает работать, если я использую from .module2 import foo in module1. Однако, если я использую from subpackage1.module2 import foo, это работает.

Я получаю ошибку ImportError: attempted relative import with no known parent package.

Что я пробовал:

Пометка подпакетов как источников root в Pycharm. Добавление __init__.py снова и снова. Я изучил различные вопросы о стековом потоке и перепробовал многие решения, но они не сработали. Большинство из них сказали, что мне нужен init.

В настоящее время пакет помечен как источник root, есть ли у вас какие-либо советы? Я был бы всегда благодарен.

1 Ответ

0 голосов
/ 22 января 2020

Я разобрался в проблеме. Я на самом деле не работал с test_module1.py. Я бежал из модуля 1, в результате чего имя было основным, что создавало проблемы. Таким образом, относительный импорт работает, когда файл запускается из другого места.

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