我是Jupyter Notebook的新手。我玩了一段时间。但这是我第一次尝试将另一台笔记本导入我的主要课程。
供参考,我使用的是Anaconda 4.3.1和Python v2.7。
我试图将我在python项目中所做的事情复制到jupyter笔记本中。它需要将其他.ipynb文件(从原始.py文件翻译)导入其中,以根据需要使用相关方法。
为此,我按照Jupyter Nbviewer Steps Link上给出的指示进行了操作,我在下面的堆栈Question进行了初步搜索。它给了我一些想法,但在一个阶段后没有帮助我。
我将引导您完成我所采取的步骤以及我尝试过的示例程序。
创建一个小的.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)
<ipython-input-9-2fb88a43c9e5> in <module>()
----&GT; 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路径值。
欢迎任何形式的帮助!
答案 0 :(得分:5)
**
链接到Drive
上的示例文件
**
确定。因此,经过一番努力并在互联网上四处寻找,最后找到了适用于我的样本案例的解决方案。
首先,这是对我最有帮助的stackoverflow问题。 Mohideen和Tyhela的回答是实际的解决方案,而不是得票最多的人。
所以,我做的是,我通过名称模块创建了一个文件夹,并将所有.ipynb文件放在那里。另外,我使用__init__.py
命令在该模块中创建了一个touch __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
作为我想要的输出。
我希望这对那些遇到类似问题的人有所帮助。
如果您有更好的方法,那么如果您能与我分享,我将不胜感激。
谢谢:)
答案 1 :(得分:3)
在jupyter笔记本中使用ipynb文件的简单方法如下:
1)安装import-ipynb
pip install import-ipynb
2)将import_ipynb
导入jupyter笔记本中。然后在导入.py文件时导入ipynb文件
import import_ipynb
from test import print_name
print_name("your name")