我看到了好几个与这个错误相关的问题,但我认为它们是不同的情况。我的Django项目有2个应用,目录结构是这样的,我面临一个相对导入的问题,我不明白其中的逻辑。
Python允许我导入 market
从文件 my_app2/signals.py
但它返回 ValueError: attempted relative import beyond top-level package
如果我导入 portfolio
从文件 my_app1/signals.py
. 这是什么原因,我怎么能找到一个绕口令?
/my_project
/my_project
__init__.py
/my_app1
market.py
signals.py # Here I can't import portfolio.py
/my_app2
portfolio.py
signals.py # Here I can import market.py
my_app1signals.py
from ..my_app2 import portfolio # doesn't work
ValueError: attempted relative import beyond top-level package
from my_project.my_app2 import portfolio # doesn't work
ModuleNotFoundError: No module named 'my_project.my_app2'
my_app2signals.py
from ..my_app1 import market # works
我终于解决了这个问题,没有使用 from
我也不清楚是什么原因导致的错误。
import my_app2.portfolio as portfolio