我有两个目录,分别是bumblebee.new和bumblebee。
bumblebee.new/bumblebee/app.py
想要从bumblebee/bumblebee
导入一些文件。
一开始,我遇到了ImportError: No module named bumblebee
。将bumblebee/bumblebee
添加到syspath后,它变为:
File "app.py", line 12, in <module>
from bumblebee import botqueueapi
File "/root/bumblebee/bumblebee/bumblebee.py", line 23, in <module>
import botqueueapi
File "/root/bumblebee.new/bumblebee/botqueueapi.py", line 12, in <module>
from bumblebee import hive
ImportError: cannot import name hive
如何解决这些问题?为什么不能导入这些文件? 谢谢你的建议和意见!
答案 0 :(得分:1)
Python的导入系统有点乱,因此你可以得到名称冲突:你在该项目中使用“bumblebee”三次,这对Python来说很困惑。导入“来自bumblebee import hive”现在解释在顶级模块而不是本地文件。这意味着它试图从不同的位置导入“hive”而不是你想象的那样。
两条经验法则:
现在,您不必遵循这些规则,但您必须知道在这种情况下您正在做什么。上述规则应避免名称冲突。