在Google Cloud Platform中使用jupyter notebook的Python模块和软件包

时间:2018-08-28 10:04:18

标签: python jupyter-notebook google-cloud-datalab

我在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创建模块和软件包?

3 个答案:

答案 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文件。

这已解决了问题。

非常感谢。