【发布时间】:2018-03-08 12:04:37
【问题描述】:
首先,我真的是一个python白痴,这是我的第一次python测试。
我正在使用Jupyter 运行test_predictors.ipynb 文件。我在逐块执行test_predictors.ipynb 文件时遇到了“ImportError: No module named”错误,如下所示:
decisioni_tree.py 是与test_predictors.ipynb 位于同一文件夹中的另一个 .py 文件。 calculate_information_gain, decision_tree_train, decision_tree_predict 是decisioni_tree.py 中定义的所有函数。下图为文件布局:
我搜索了很多线程,尝试将所有 .py 文件放入子文件夹,或者在decisioni_tree 前面添加一个前导点,或者添加decisioni_tree 的完整路径,但这些都不起作用。
我也读过PEP,但这对我来说意义不大。现在我真的很无知。我想这是路径问题,但我不明白python如何安排它们的路径背后的逻辑。我想知道有人可以提供一些指示吗?我应该如何解决这个问题?谢谢。
我使用的是 Windows 10,我认为安装了 Python 3.4/3.5。
【问题讨论】:
-
我几乎不使用 Jupyter 笔记本,所以这是在黑暗中尝试。如果您在名为
__init__.py的同一目录中创建一个空文件(每边双下划线)然后尝试,会发生什么情况? -
@roganjosh,这是我的第一个想法。我在 Ubuntu 上使用 Jupyter 从本地 .py 文件导入没有任何问题。不过值得一试 - 可能是 Windows 的行为有所不同。
-
@roganjosh 我按照你的建议添加了一个名为 $__init__.py$ 的空文件,但不幸的是发生了同样的错误。
-
你试过重启内核吗?
-
@Sraw 对不起,我真的是 python 新手。如何重启内核?我可以尝试重新启动 Jupyter,但我不知道这是否会重新启动内核。
标签: python python-3.x