Jupyter Notebook:导入 .ipynb 文件并在其他 .ipynb 文件中访问它的方法出错
Jupyter Notebook: Import .ipynb file and access it's method in other .ipynb file giving error
我是 Jupyter Notebook 的新手。我已经玩了一段时间了。但这是我第一次尝试将另一个笔记本导入我的主 class.
作为参考,我使用的是 Anaconda 4.3.1 和 Python v2.7。
我正在尝试将我在 python 项目中所做的复制到 jupyter 笔记本中。它需要将其他.ipynb文件(从原始.py文件翻译而来)导入其中才能根据需要使用相关方法。
为此,我遵循了 Jupyter Nbviewer Steps Link which I found through my preliminary search on the following stack Question 上给出的说明。它给了我一些想法,但在一个阶段后没有帮助我。
我将向您介绍我执行的步骤和我尝试的示例程序。
创建了一个小的.ipynb文件abc.ipynb如下
def prt_n(str):
print(str)
if __name__ == '__main__':
prt_n("in abc")
创建了一个 .ipynb 文件以从上面给出的 Jupyter link 导入 Jupyter Notebook。比如说,importer.ipynb.
运行 importer.ipynb
import abc
str="Hello Me"
测试步骤 abc.__name__
结果为 abc
作为输出。
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 路径值。
欢迎任何形式的帮助!
**
Link to sample files on Drive
**
好的。因此,经过一番努力并在 Internet 上四处寻找,终于找到了适用于我的示例案例的解决方案。
首先,这是对我帮助最大的Whosebug问题。 Mohideen 和 Tyhela 的回答是实际的解决方案,而不是得票最多的解决方案。
所以,我所做的是,我创建了一个名为 module 的文件夹,并将我所有的 .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 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")
我是 Jupyter Notebook 的新手。我已经玩了一段时间了。但这是我第一次尝试将另一个笔记本导入我的主 class.
作为参考,我使用的是 Anaconda 4.3.1 和 Python v2.7。
我正在尝试将我在 python 项目中所做的复制到 jupyter 笔记本中。它需要将其他.ipynb文件(从原始.py文件翻译而来)导入其中才能根据需要使用相关方法。
为此,我遵循了 Jupyter Nbviewer Steps Link which I found through my preliminary search on the following stack Question 上给出的说明。它给了我一些想法,但在一个阶段后没有帮助我。
我将向您介绍我执行的步骤和我尝试的示例程序。
创建了一个小的.ipynb文件abc.ipynb如下
def prt_n(str): print(str) if __name__ == '__main__': prt_n("in abc")
创建了一个 .ipynb 文件以从上面给出的 Jupyter link 导入 Jupyter Notebook。比如说,importer.ipynb.
运行 importer.ipynb
import abc
str="Hello Me"
测试步骤
abc.__name__
结果为abc
作为输出。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 路径值。
欢迎任何形式的帮助!
**
Link to sample files on Drive
**
好的。因此,经过一番努力并在 Internet 上四处寻找,终于找到了适用于我的示例案例的解决方案。
首先,这是对我帮助最大的Whosebug问题。 Mohideen 和 Tyhela 的回答是实际的解决方案,而不是得票最多的解决方案。
所以,我所做的是,我创建了一个名为 module 的文件夹,并将我所有的 .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 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")