繁体   English   中英

Jupyter Notebook:导入.ipynb文件,并在其他.ipynb文件中访问它的方法,给出错误

[英]Jupyter Notebook: Import .ipynb file and access it's method in other .ipynb file giving error

我是Jupyter Notebook的新手。 我玩了一段时间。 但这是我第一次尝试将另一台笔记本导入我的主课程。

作为参考,我使用的是Anaconda 4.3.1和Python v2.7。

我试图将我在python项目中所做的事情复制到jupyter笔记本中。 它需要将其他.ipynb文件(从原始.py文件翻译)导入其中,以根据需要使用相关方法。

为此,我按照Jupyter Nbviewer Steps Link上给出的指示进行了操作,我通过对以下堆栈问题的初步搜索找到了这些指示。 它给了我一些想法,但在一个阶段后没有帮助我。

我将引导您完成我采取的步骤和我尝试的示例程序。

  1. 创建了一个小的.ipynb文件abc.ipynb,如下所示

     def prt_n(str): print(str) if __name__ == '__main__': prt_n("in abc") 
  2. 创建一个.ipynb文件,从上面给出的Jupyter链接导入Jupyter Notebook。 比如,importer.ipynb。

  3. 运行importer.ipynb

  4. import abc

  5. str="Hello Me"

  6. 测试步骤abc.__name__导致abc作为输出。

  7. abc.prt_n(str)抛出以下错误

* ------------------------------------------------- --------------------------

AttributeError                            Traceback (most recent call last)
<ipython-input-9-2fb88a43c9e5> in <module>()

----> 1 abc.prt_n(str)AttributeError:'module'对象没有属性'prt_n'*

我希望答案是Hello Me

后来,我想实际创建一个myMain.ipynb文件,并且我希望包含2-3个这样的笔记本,并使用所需参数调用它们的方法。

一个这样的例子可以是文件efg.ipynb ,如下所示:

import abc a="Hello Notebook" abc.prt_n(a)

我还想确定是否有其他方法可以做到这一点?

注意:我已经检查过sys.executable和sys.path。 两者都具有相同的python路径值。

欢迎任何形式的帮助!

**

链接到云端硬盘上的示例文件

**

好。 因此,经过一番努力并在互联网上四处寻找,终于找到了适用于我的样本案例的解决方案。

首先,这是对我最有帮助的stackoverflow问题。 Mohideen和Tyhela的回答是实际的解决方案,而不是得票最多的人。

所以,我做的是,我通过名称模块创建了一个文件夹,并将所有.ipynb文件放在那里。 另外,我使用touch __init__.py命令在该模块中创建了一个__init__.py文件,以便导入可以将其注册为有效模块。 这些家伙已经对它进行了详细的解释,这似乎是合法的。

然后从我的工作目录中运行以下命令:

str = "Hello Me"
import test.abc as tabc
tabc.prt_n(str)

在输出中给了我Hello Me

为了,

`import test.efg as tefg`

我有

importing Jupyter notebook from test/efg.ipynb Hello Note

作为我想要的输出。

我希望这对那些遇到类似问题的人有所帮助。

如果您有更好的方法,那么如果您能与我分享,我将不胜感激。

谢谢 :)

在jupyter笔记本中使用ipynb文件的简单方法如下:

1)安装import-ipynb

pip install import-ipynb

2)在jupyter笔记本中导入import_ipynb 然后在导入.py文件时导入ipynb文件

import import_ipynb
from test import print_name

print_name("your name")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM