python - 尝试使用 Python 进行顶级包之外的相对导入
问题描述
我已经看到了几个与此错误相关的问题,但我认为它们是不同的情况。我的 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_app1/signals.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_app2/signals.py
from ..my_app1 import market # works
解决方案
我终于在不使用的情况下解决了这个问题from
,我不清楚是什么导致了错误。
import my_app2.portfolio as portfolio
推荐阅读
- windows - 如何使用 echo 从 Windows 批处理文件中获取相对路径?
- python - 如何使用 tarfile 控制 tar 文件默认提取的位置?
- kubernetes - 如何通过 kubeadm 更改 kubelet 配置
- python - 从字符串输入中创建一个带有空格的单独单词列表
- centos - 通过脚本安装包
- python - 为什么 type(list.append) 返回 builtin_function_or_method 而不是 function *or* method?
- qt-creator - 在 QtCreator 中创建新的 C++ 类时拆分窗口
- android - 导航菜单项如何在片段上显示
- ajax - WordPress AJAX 400 提交表单时出现错误请求
- java - 使用更高版本的 JDK 编译时如何验证依赖项的 java 版本?