我在Google Cloud Platform的Google CloudDatalab中使用Jupyter Notebooks作为我的Python脚本。这将创建 .ipynb 文件。
我希望能够使用Jupyter Notebook创建模块和软件包,但无法导入脚本。
例如:
mymodule.ipynb 具有此功能:
def test_function():
print("Hello World")
然后,当我尝试导入上述内容时,进入 myscript.ipynb :
from mymodule import test_function
它抛出一个错误:
*()中的ImportErrorTraceback(最近一次通话最近)
---->来自mymodule import test_function ImportError的1:没有名为mymodule *的模块
如何使用Jupyter Notebook创建模块和软件包?
答案 0 :(得分:1)
笔记本不能用作模块。您需要创建一个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
答案 1 :(得分:1)
您不能以与Python文件(包)相同的方式导入Jupyter Notebook。
检查此链接:https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html
答案 2 :(得分:0)
我在另一个论坛上收到了答复,回答了我的问题。答案是这样:
将模块代码放入.py文件,并确保该文件与myscript.ipynb位于同一目录中。 要从笔记本中当前的代码创建.py文件,可以从Jupyter内部将其作为.py文件下载,并在所选的文本编辑器中进行整理。 请记住,import语句是纯python语法。它对jupyter笔记本一无所知,也不想对它有所了解。它正在寻找一个.py文件。
这已解决了问题。
非常感谢。