我在获取正确导入功能时遇到问题,我不确定为什么。
现在我有一个看起来像这样的文件结构:
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.py
和processing
文件中的所有内容?
答案 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/
包含当前目录。