这是我的代码配置:
__init__py
./module_1/foo.py
./module_1/__init__.py
./module_2/bar.py
./module_2/__init__.py
我的目标是能够从 bar.py 导入 foo 模块,但我对如何操作非常困惑。
如:
from ..module_1.foo import *
会引发以下错误:
ValueError: Attempted relative import in non-package
编辑:
理想情况下,我希望能够以下列方式运行我的脚本:
python ./module1/foo.py
答案 0 :(得分:1)
您还没有展示如何调用脚本,但是您需要确保您的脚本实际上是python路径中的包。这基本上是错误消息告诉你的,你试图导入一个"非包"。你可能没有在python路径中拥有你的顶级。例如......
如果您的顶级模块名为 app ,且您的配置为
<path-to-app>/app/__init__py
<path-to-app>/app/module_1/foo.py
<path-to-app>/app/module_1/__init__.py
<path-to-app>/app/module_2/bar.py
<path-to-app>/app/module_2/__init__.py
您可以按如下方式运行脚本。
cd <path-to-app>
PYTHONPATH=$PWD python -m app.module_2.bar
适合我。