При следующей структуре каталогов:
Код: Выделить всё
📦app
┣ 📂lexer
┃ ┣ 📂token
┃ ┃ ┣ 📜token.py
┃ ┃ ┣ 📜type.py
┃ ┃ ┗ 📜__init__.py
┃ ┗ 📜__init__.py
┣ 📂test
┃ ┣ 📂lexer
┃ ┃ ┣ 📂token
┃ ┃ ┃ ┣ 📜test_token.py
┃ ┃ ┃ ┗ 📜__init__.py
┃ ┃ ┗ 📜__init__.py
┃ ┣ 📜test_app.py
┃ ┗ 📜__init__.py
┗ 📜app.py
Код: Выделить всё
pyhton -m app
Код: Выделить всё
python -m .\app.py
Код: Выделить всё
Relative module names not supported.
Код: Выделить всё
python -m unittest
Теперь я пытаюсь использовать импорт файла токена/type.py в приложении. Файл .py.
Содержимое этого файла:
Код: Выделить всё
from enum import Enum, unique
@unique
class Type(Enum):
UNKNOWN = 1
EOF = 2
Код: Выделить всё
from app.lexer.token.type import Type
Код: Выделить всё
Traceback (most recent call last):
File "C:\Python38\lib\runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Python38\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "C:\DEV\DEMO.ONE\app\app.py", line 17, in
from app.lexer.token.type import Type
File "C:\DEV\DEMO.ONE\app\app.py", line 17, in
from app.lexer.token.type import Type
ModuleNotFoundError: No module named 'app.lexer'; 'app' is not a package
Подробнее здесь: https://stackoverflow.com/questions/613 ... -in-module