【发布时间】:2021-01-09 20:08:48
【问题描述】:
是的,我阅读了Relative imports for the billionth time 的答案。不,我没有发现它真的有用,因为我尝试了两种解决方案,但它对我不起作用。见下文。
我有以下文件夹结构。
(我没有任何__init__.py,因为我知道它们不再需要。我有 Python 3.7)
project
├── subpackage1
└── subpackage2
├── launch
| └── launchFunc.py
| └── launchFunc.sh
└── src
└── somemodule.py
launchFunc.py:
from somemodule import func
func()
launchFunc.sh:
#!/bin/bash
python -m launch.launchFunc
然后我打开命令行并 cd 进入 project/subpackage2/ 并运行以下命令:
./launch/launchFunc.sh
我收到以下错误:
from somemodule import func
ModuleNotFoundError: No module named 'somemodule'
如果我用from ..src.somemodule import func 替换from somemodule import func,我得到:
ValueError: attempted relative import beyond top-level package
在 python 中导入和/或运行脚本的正确方法是什么? 没有办法让所有功能自动导入所有必需的模块吗?
【问题讨论】:
标签: python python-3.x import python-import