这里有另一个Python新手.
目前,我在anaconda框架中使用Jupypter笔记本.
目前,我在anaconda框架中使用Jupypter笔记本.
为了使用iPython Notebook继续我的项目,
我需要在笔记本上运行一些python脚本(tp.py文件).
from tp import wordtoplural
因为,它使生活变得更容易,而不是在笔记本本身定义所有功能.
ImportError: cannot import name wordtoplural
> iPython笔记本和python脚本(.py)位于同一文件夹中.
>在该目录中也添加了空的__init.py__文件.
解决方法
确保您的ipython笔记本与python脚本位于同一文件夹中.此外,您可能必须在与python脚本相同的文件夹中创建一个空的__init__.py文件,以使导入工作.
由于您可能正在修改您的python脚本并直接在您的笔记本上进行测试,您可能会对autoreload插件感兴趣,该插件将使用您在python脚本中所做的更改自动更新导入的模块:
%load_ext autoreload %autoreload 2
另请注意,在某些情况下,您可能需要在IPython笔记本中将其添加到第一个单元格的最顶部(在%magics之后):
from __future__ import absolute_import
限制:autoreload通常可以很好地重新加载模块代码的任何部分,但是有一些例外,例如新类方法:如果添加或更改方法的名称,则必须重新加载内核!否则它将继续加载此方法的旧定义或在解决方案中失败(未找到方法),当您重载魔术方法时可能会特别困惑(因此在这种情况下,将调用默认魔术方法而不是您的定义!).然后一旦定义了方法名并重新加载了内核,就可以自由地修改这个方法的代码,新代码将自动重新加载.
如果你在更改的类中使用super()调用它也将失败,如果发生这种情况,你还必须重新加载内核.