AttributeError: модуль '' не имеет атрибута __path__ ' - PullRequest
0 голосов
/ 13 сентября 2018

У меня проблема, которую я не знаю, как продолжить отладку.

У меня есть проект с другими целями, в том числе с использованием Python 3. Я создал пакет Python с именем package . Топ-каталог пакета находится внутри myproject / python / . В файловой системе она имеет следующую структуру:

- /home/myuser/myproject/python
--- package/
------ __init__.py
------ myutil.py
------ sub_package/
---------- __init__.py
---------- sub_sub_package/
-------------- __init__.py
-------------- myscript.py

Все файлы __ init __. Py являются пустыми, за исключением корневого ( package / __ init __. Py ), который имеет следующее содержимое:

from . import myutil

Пока все хорошо. Файл myscript.py на самом деле является скриптом Python для непосредственного запуска. Поскольку он находится внутри пакета, я выполняю его так:

cd /home/myuser/myproject/python
python -m package.sub_package.sub_sub_package.myscript

Теперь странная часть. Скрипт работает как положено. Однако после завершения программы я получаю следующее сообщение:

/usr/bin/python3: Error while finding module specification for 
'package.sub_package.sub_sub_package.myscript.py'
(AttributeError: module 'package.sub_package.sub_sub_package.myscript' 
has no attribute '__path__')

Я искал в Интернете, но безрезультатно. Не могу понять, что является причиной этого сообщения и как его решить. Я предполагаю, что это неясное поведение обработки импорта в Python 3, но понятия не имею. Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 13 сентября 2018

у вас нет __init__.py файла в последнем каталоге sub_sub_package

попробуйте добавить туда пустой __init__.py файл

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