【问题标题】:iPython Notebook (Python 3): ImportError: No module namediPython Notebook (Python 3): ImportError: No module named
【发布时间】: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_predictdecisioni_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


【解决方案1】:

在我看来,您无法从工作目录中导入任何脚本。 这不应该发生。 我建议您通过在笔记本中运行来查看您的 python 路径:

import sys
print sys.path

如果您的主目录或笔记本目录(如'C:\\Users\\yourusername\\.ipython')没有显示,那么您可能需要将其添加为路径。 尝试将您的主目录添加到路径:

sys.path.append('C:\\Users\\yourusername\\')

sys.path.insert(1, 'C:\\Users\\yourusername\\')

【讨论】:

  • 'C:\Users\yourusername\.ipython' 实际上在我打印(sys.path)时出现。那么现在呢?
【解决方案2】:

试试这个:

sys.path.insert(0, 'directory_of_the_pyfile_you_want_to_import')

import FOLDER.file

其中FOLDER 是模块名称,file is the .py file 您要导入。

如果__init__.py 解决方案不起作用,则此操作..

【讨论】:

  • 看起来有效。我不再收到我收到的错误消息。谢谢。
猜你喜欢
  • 2017-02-10
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 2011-04-08
  • 2016-08-09
  • 1970-01-01
  • 2017-04-15
相关资源
最近更新 更多