Python 如何从src/main目录中公开模块名称?
我想按如下方式执行我的模块:Python 如何从src/main目录中公开模块名称?,python,python-3.x,project-structure,Python,Python 3.x,Project Structure,我想按如下方式执行我的模块: python -m module1 或 我有一个项目,在这个项目结构下包含module1和module2: my-project/ src/ main/ module1/ module1.py __init__.py __main__.py module2/
python -m module1
或
我有一个项目,在这个项目结构下包含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
\uuuu main\uuuuu.py
的外观如下:
from module1 import module1
print('module1 = ', module1.main())
module2
的一个看起来一样,只是调用了module2
,而不是一个
现在,当尝试调用python-m module1
或python-m module2
时,我得到一个错误,即找不到模块:没有名为module1的模块
调用python-msrc.main.module1
或python-msrc.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
不是一件事?还是我遗漏了什么?我试图找出一些可能需要更改的配置,但我没有找到任何东西 再看一遍,在每个模块中最好有一个src/main
目录?这看起来像这样:
my-project/
module1/
src/
__init__.py
main/
__init__.py
module1.py
__init__.py
test/
__init__.py
__main__.py
module2/
src/
__init__.py
main/
__init__.py
module2.py
__init__.py
test/
__init__.py
__main__.py
__init__.py
setup.py
此结构似乎具有所需的cli行为,但仍然允许很好地构造文件。我想有一个选择,但不确定这是否是最好的选择
my-project/
module1/
src/
__init__.py
main/
__init__.py
module1.py
__init__.py
test/
__init__.py
__main__.py
module2/
src/
__init__.py
main/
__init__.py
module2.py
__init__.py
test/
__init__.py
__main__.py
__init__.py
setup.py