Я хотел бы выполнить свои модули следующим образом:
python -m module1
или
python -m module2
У меня есть проект, который содержит module1
и module2
в этой структуре проекта :
my-project/
src/
main/
module1/
module1.py
__init__.py
__main__.py
module2/
module2.py
__init__.py
__main__.py
__init__.py
test/
__init__.py
setup.py
__main__.py
выглядит так:
from module1 import module1
print('module1 = ', module1.main())
Тот, что для module2
выглядит так же, просто вызывает module2
вместо единицы.
Теперь при попытке вызвать python -m module1
или python -m module2
я получаю сообщение об ошибке, что модуль не может быть найден: No module named module1
Вызов python -m src.main.module1
или python -m src.main.module2
все работает просто хорошо. Кроме того, при изменении структуры каталогов на:
my-project/
module1/
module1.py
__init__.py
__main__.py
module2/
module2.py
__init__.py
__main__.py
test/
__init__.py
setup.py
, все работает как нужно!
Это просто способ обработки python, а наличие src/main
просто не предмет? Или я что-то упустил? Я попытался выяснить какую-то конфигурацию, которая может нуждаться в изменении, но мне действительно не повезло найти что-либо.