python - ImportError:尝试相对导入超出顶级包
问题描述
我已经研究了一天多,但不完全理解为什么我配置的东西不起作用,所以我在 StackOverflow 上问了一个被问了 5000 次的问题(此时它是 Python 的 UX 问题?)。我目前有一个项目,它有一个用于加载其他模块的主模块。这是我的文件结构:
E:\Python\SWISSARMY │ swisscore.py │ └────模块 │ nmapper.py │ __init__.py │ └────__pycache__ nmapper.cpython-39.pyc __init__.cpython-39.pyc
Swisscore 被认为是我的“主要”包,所以我先加载它。从这里,有一个菜单选择,最终将加载 nmapper。
我想要做的是将我的函数从 swisscore 导入 nmapper,所以我在 nmapper.py 中尝试了以下操作
import subprocess,time,logging,os,sys
from ..swisscore import swissmenu
当我运行 swisscore 并加载 nmapper 时,立即抛出此错误:
Traceback (most recent call last):
File "e:\Python\SwissArmy\swisscore.py", line 20, in <module>
swissmenu()
File "e:\Python\SwissArmy\swisscore.py", line 10, in swissmenu
import modules.nmapper
File "e:\Python\SwissArmy\modules\nmapper.py", line 4, in <module>
from ..swisscore import swissmenu
ImportError: attempted relative import beyond top-level package
如果我能有一个我做错的 ELI5,那将是很棒的,因为我对此感到茫然。
先感谢您。
解决方案
推荐阅读
- ansible - 一个角色的默认文件夹中定义的变量是否会被剧本中定义的调用该角色的变量覆盖?
- design-patterns - 为什么 ConcreteObserver 在观察者模式中持有对 ConcreteSubject 的引用?
- cordova - “cordova run android”有什么作用?
- sql - Rake db:migrate 添加 :precision 选项到日期时间列
- machine-learning - 概率和可能性之间的差异
- android - 在设备中安装离子移动应用程序后,它显示错误连接超时
- scheme - 如何访问二维列表中的索引并在方案/球拍中更改它的值?
- excel - 如何使用 Excel VBA 在 IE 中单击 js 按钮?
- c++ - 错误:“const char *”类型的值不能用于初始化“char”类型的实体
- mysql - 如何使用 WHERE 子句和 INNER JOIN 从列中获取所有行