Python总是给我一个重要的东西

2024-06-25 23:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个目录,分别是大黄蜂。新还有大黄蜂。 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

如何解决这些问题?为什么不能导入这些文件? 感谢您的建议和建议!你知道吗


Tags: 文件infrompyimportappnewline
1条回答
网友
1楼 · 发布于 2024-06-25 23:48:45

Python的导入系统有点混乱,因此您可能会遇到名称冲突:您在该项目中使用了三次“bumblebee”,这让Python感到困惑。导入“from bumblebee import hive”现在在顶级模块中解释,而不是作为本地文件。这意味着它试图从一个不同的位置导入“蜂巢”而不是你所期望的,它在那里找不到它。你知道吗

两条经验法则:

  • 始终从顶级目录运行Python项目。所以“python full/path/to/my”/文件.py““
  • 总是写完整的导入,所以“从完整路径到.我的.file导入foo”而不是“从文件导入foo”。你知道吗

现在,你不必遵守这些规则,但你必须知道在这种情况下你在做什么。以上规则应避免名称冲突。你知道吗

相关问题 更多 >