Jupyter Notebook:导入 .ipynb 文件并在其他 .ipynb 文件中访问其方法时出现错误。
Jupyter Notebook:导入 .ipynb 文件并在其他 .ipynb 文件中访问其方法时出现错误。
我对Jupyter Notebook还比较新。我已经玩过一段时间了。但这是我第一次尝试将另一个笔记本导入到我的主类中。
供参考,我使用的是Anaconda 4.3.1和Python v2.7。
我试图在Jupyter笔记本中复制我在Python项目中所做的内容。它需要将其他.ipynb文件(从原始的.py文件转换而来)导入其中以使用所需的相关方法。
为此,我按照Jupyter Nbviewer 步骤链接上给出的指示进行操作,这是我通过初步搜索以下stackoverflow 问题找到的。它给了我一些想法,但在一阶段之后并没有帮助我。
我将向您介绍我所采取的步骤和我尝试的示例程序。
- 创建一个小的.ipynb文件abc.ipynb,如下所示
def prt_n(str): print(str) if __name__ == '__main__': prt_n("in abc")
- 创建一个.ipynb文件以从上面给出的Jupyter链接中导入Jupyter Notebook。假设为importer.ipynb。
- 运行importer.ipynb
import abc
str="Hello Me"
- 测试步骤
abc.__name__
结果为abc
。 abc.prt_n(str)
抛出以下错误
*---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)in ()
----> 1 abc.prt_n(str)
AttributeError: 'module' object has no attribute 'prt_n'*
我希望答案是Hello Me
。
之后,我想实际创建一个myMain.ipynb文件,在其中包括2-3个这样的笔记本,并调用它们的方法以及所需的参数。
一个这样的示例可以是一个名为efg.ipynb
的文件,如下所示:
import abc a="Hello Notebook" abc.prt_n(a)
我还想确保是否有其他方法可以做到这一点?
注意:我已经检查了sys.executable和sys.path。两者都具有相同的Python路径值。
任何形式的帮助都欢迎!
使用 import-ipynb 在 Jupyter Notebook 中导入 ipynb 文件的简单方法如下:
1)安装 import-ipynb 库
pip install import-ipynb
2)在 Jupyter Notebook 中导入 import_ipynb,然后像导入 .py 文件一样导入 ipynb 文件
import import_ipynb
from test import print_name
print_name("your name")
然而,有些用户在尝试导入 ipynb 文件并访问其方法时会遇到错误。下面我们来分析一下这个问题出现的原因以及解决方法。
问题原因:
这个错误通常是因为没有正确设置 Jupyter Notebook 环境或导入文件的路径不正确导致的。
解决方法:
1)确保已经安装了 import-ipynb 库。可以通过在终端中运行以下命令来安装:
pip install import-ipynb
2)在 Jupyter Notebook 中导入 import_ipynb。可以在 Jupyter Notebook 的代码单元格中使用以下代码导入:
import import_ipynb
3)确保你正在使用正确的文件路径来导入 ipynb 文件。在上面的示例中,我们假设 ipynb 文件名为 test.ipynb,它与当前的 Jupyter Notebook 文件在同一个目录下。如果你的文件路径不同,你需要相应地修改导入语句中的文件路径。
通过按照上述解决方法来设置环境和导入路径,你应该能够成功导入 ipynb 文件并访问其中的方法了。
在这个问题中,出现了一个无法导入.ipynb文件并在其他.ipynb文件中访问其方法的错误。解决方法是在一个名为module的文件夹中放置所有的.ipynb文件,并在该module文件夹中创建一个__init__.py文件,以便将其作为有效的模块进行注册。然后可以使用以下命令从工作目录运行代码来导入和访问.ipynb文件中的方法:
str = "Hello Me" import test.abc as tabc tabc.prt_n(str)
这将输出"Hello Me"。而对于另一个.ipynb文件的导入:
import test.efg as tefg
将输出"importing Jupyter notebook from test/efg.ipynb Hello Note"。这是期望的输出。
希望这对那些遇到类似问题的人有所帮助。如果您有更好的方法,请与我分享。谢谢!