Отладка «ImportError: попытка относительного импорта без известного родительского пакета» - PullRequest
1 голос
/ 16 января 2020

У меня следующая структура каталогов

Test/
    __init__.py
    __main__.py
    Package_1/
        __init__.py
        module_1.py
        module_2.py
    Package_2/
        __init__.py
        module_3.py
        module_4.py
        Subpackage/
            __init__.py
            module_3.py

Файлы init .py пусты

module_1.py

from .module_2 import function_1
function_1()


module_2.py

def function_1():
print('function_1')


module_5.py 

def function_2():
print('function_2')


main.py

from .Package_1.module_1 import *
function_1.py

Я получаю следующий вывод -

(base) C:\Users\Neilabh\Desktop\PS4-OP\STADS\Image Generation\Test>python -m main.py

Traceback (most recent call last):
  File "C:\Users\Neilabh\Miniconda3\lib\runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "C:\Users\Neilabh\Miniconda3\lib\runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "C:\Users\Neilabh\Desktop\PS4-OP\STADS\Image Generation\Test\main.py", line 1, in <module>
    from .Package_1.module_1 import *
ImportError: attempted relative import with no known parent package

Я пробовал различные перестановки для импорта файла из импорта в основной файл. Я не смог сделать это правильно. Любая помощь в отладке то же самое можно только приветствовать. Если есть другой способ сделать это, было бы очень кстати.

Спасибо.

1 Ответ

0 голосов
/ 14 марта 2020

Вместо

C:\Users\Neilabh\Desktop\PS4-OP\STADS\Image Generation\Test>python -m main.py

Попробуйте:

C:\Users\Neilabh\Desktop\PS4-OP\STADS\Image Generation\>python -m Test.main
...