我在Google Cloud Platform中使用Google CloudDatalab中的Jupyter笔记本作为我的Python脚本。这会创建.ipynb文件。
我希望能够使用Jupyter笔记本创建模块和包,但它无法导入脚本。
例如:
mymodule.ipynb有这个:
def test_function():
print("Hello World")
然后在myscript.ipynb中,当我尝试导入上面的内容时:
from mymodule import test_function
它抛出一个错误:
*()中的ImportError Traceback(最近一次调用最后一次)
----> 1来自mymodule import test_function ImportError:没有名为mymodule的模块*
如何使用Jupyter笔记本创建模块和包?
笔记本不能用作模块。您需要创建一个python文件(例如mymodule.py
)。
如果你想要你可以在一个jupyter笔记本中做到这一点:
with open('mymodule.py', 'w') as f:
f.write('def test_function():')
f.write(' print("Hello World")')
from mymodule import test_function
test_function()
# Hello World
您不能以与Python文件(包)相同的方式导入Jupyter Notebook。
检查此链接:https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html
我收到了另一个回答我问题的论坛的回复。这是答案:
将模块代码放入.py文件中,并确保它与myscript.ipynb位于同一目录中。要从笔记本中当前的代码创建.py文件,您可以从Jupyter中将其作为.py文件下载并在您选择的文本编辑器中进行整理。请记住,import语句是纯Python语法。它一无所知 - 并且不想知道任何关于 - jupyter笔记本。它正在寻找一个.py文件。
这解决了这个问题。
非常感谢。