python ModuleNotFoundError,即使模块已被识别

2nc8po8w  于 2023-01-01  发布在  Python
关注(0)|答案(3)|浏览(115)

我的文件夹结构是:

|-fastapi
   |-app
     |-calc.py
   |-tests
     |-mytest.py

mytest.py中,我尝试导入calc.py,如下所示:

from app import calc

mytest.py中,app和calc都是绿色高亮显示的,当我把鼠标悬停在它们上面时,它显示为(module),它似乎被识别,但当我运行它时,我得到了错误,我知道以前有人问过这个问题,但我还没有找到解决方案。

63lcw9qa

63lcw9qa1#

每个文件夹中需要__init__.py才能将其标记为包。它可以是空文件。有关详细信息,请查看文档。

x759pob2

x759pob22#

我在我的机器中创建了完全相同的文件层次结构,然后在calc.py文件中创建了一个名为hello()的随机函数,这是成功调用应用程序文件夹中函数的代码,

import sys
sys.path.append('../')
from app import calc
print(calc.hello())

也许我误解了这个问题,所以这里有一个关于IDE在导入模块时的行为的非常详细的答案,
如下图所示,我们可以在几乎任何python IDE中导入错误的模块,并且它不会给予错误,直到或除非它是一个预装了扩展的智能IDE,可以像检查其他脚本语言一样进行检查,或者它还不会给出错误,如下图所示,

我们可以看到IDE没有显示任何错误,甚至没有给予任何形式的警告,但是当你运行代码时,你会得到这个错误,这和OP运行代码时得到的错误是一样的,

这可以尝试from app import calc,它会给予你同样的错误,因为它给from imagination import dreams
但是当你添加几行代码的时候

import sys
sys.path.append('../')

它开始以类似的方式导入OP试图做的事情,但只使用了额外的代码行,为什么?这是因为他们有他们的文件彼此并行,这可以在他们提到的文件夹中看到,

|-fastapi
   |-app
     |-calc.py
   |-tests
     |-mytest.py

也许这回答了一个评论提到的问题,我冒昧地假设了一些事情,但或多或少这是正在发生的事情,请纠正这个答案。

envsm3lx

envsm3lx3#

您应该检查并确保不存在名为“calc.py”的文件。

相关问题