Python 模块中函数的ModuleNotFoundError为';已包含在_uinit__uuu.py文件中
我在获取正确导入的函数时遇到问题,我不确定原因 现在我有一个文件结构,如下所示:Python 模块中函数的ModuleNotFoundError为';已包含在_uinit__uuu.py文件中,python,Python,我在获取正确导入的函数时遇到问题,我不确定原因 现在我有一个文件结构,如下所示: utils/ - __init__ - metrics - processing __init__ decision_tree 在我的decision_tree.py文件中,我在顶部有以下导入语句: from utils import mse, majority_vote, gini 当我运行decision_tree.py时,我得到以下错误: ModuleNotFoundError: No mod
utils/
- __init__
- metrics
- processing
__init__
decision_tree
在我的decision_tree.py
文件中,我在顶部有以下导入语句:
from utils import mse, majority_vote, gini
当我运行decision_tree.py
时,我得到以下错误:
ModuleNotFoundError: No module named 'processing'
在回溯中,它提到了metrics.py
中的以下行:
File "C:\Users\Jonat\OneDrive\Dokumentumok\Python Scripts\easyml\utils\metrics.py", line 8, in <module>
from processing import get_counts
根目录中的init.py
文件为空
此外,当我转到metrics.py
文件并运行它时,我没有得到ModuleNotFoundError
那么,为什么当我运行
metrics.py
时,import语句工作正常,但当我通过init.py通过外部文件访问metrics.py
时,会出现错误,即使我已经为处理
和度量
文件中要包含的所有内容指定了源。processing import*
获取处理模块内部的可导入名称,但不获取名称处理
本身
这有点像打开一个盒子,发现里面还有五个盒子,把那五个盒子放进口袋,然后把原来的盒子扔掉
当您作为独立模块执行
metrics.py
时,导入工作正常,因为您位于utils/
目录中,sys.path
包括当前目录。当我在decision_tree.py?
中导入utils
目录时,我应该做什么更改以允许metrics.py
中调用processing.py中的函数工作PYTHONPATH
@JohnGordon:这是绝对的最后手段。如果使用python3-m easyml.utils.metrics
运行metrics.py
中的相对导入,如果easyml
的根在Python路径中,则应该可以正常工作;您不希望将目录树的所有级别都添加到PYTHONPATH
PYTHONPATH
是一种当您不了解如何制作和安装软件包时会使用的黑客攻击。
from .processing import *
from .metrics import *