__init__.py文件中包含的模块中函数的ModuleNotFoundError

时间:2019-05-13 20:09:13

标签: python

我在获取正确导入功能时遇到问题,我不确定为什么。

现在我有一个看起来像这样的文件结构:

UIView

在我的utils/ - __init__ - metrics - processing __init__ decision_tree 文件中,顶部具有以下import语句:

decision_tree.py

当我运行from utils import mse, majority_vote, gini 时,出现以下错误:

decision_tree.py

在回溯中,它在ModuleNotFoundError: No module named 'processing' 中提到了以下行:

metrics.py

在utils文件的File "C:\Users\Jonat\OneDrive\Dokumentumok\Python Scripts\easyml\utils\metrics.py", line 8, in <module> from processing import get_counts 文件中,我具有以下内容:

init.py

根目录中的from .processing import * from .metrics import * 文件为空。

此外,当我转到init.py文件并运行它时,没有得到metrics.py

那为什么当我运行ModuleNotFoundError时import语句可以正常工作,但是当我通过metrics.py通过外部文件访问metrics.py时却得到了错误,即使我是否已指定要同时包含在init.pyprocessing文件中的所有内容?

1 个答案:

答案 0 :(得分:1)

AMP.printState() filterState: dates: Array(8) 0: {date: "05/16/2019", id: null} 1: {date: "05/17/2019", id: null} 2: {date: "05/18/2019", id: null} 3: {date: "05/19/2019", id: null} 4: {date: "05/20/2019", id: null} 5: {date: "05/21/2019", id: null} 6: {date: "05/22/2019", id: null} 7: {date: "05/23/2019", id: null} length: 8 endDate: "05/23/2019" startDate: "05/16/2019" 在处理模块内部获取可导入的名称​​ ,但名称from .processing import *本身未获得。

有点像打开一个盒子,在里面找到另外五个盒子,将这五个盒子放在口袋里,然后把原来的盒子扔掉。

当您将processing作为独立模块执行时,导入才起作用,因为您位于metrics.py目录中,并且utils/包含当前目录。