Jupyter Notebook是Python学习过程中的一把利器,所以我也在github上创建了一个仓库专门用来放各种python库的实操记录,好记性不如笔头。
但平时除了导入一些打包好的开源模块外,也会有需要自已定义一些常用模块,但导入的时候就出现了ImportError却找不到原因:
importerror attempted relative import with no known parent package
搜索之后发现是我的目录结构的问题。
有问题的目录结构是这样的:
simple_ipynb:
|---core:
|---fileutil.py
|---pandas_wiki.ipynb
Jupyter Notebook对模块的索引机制和普通的Python相同,只不过执行的是.ipynb而已,但需要注意几点:
- 引入的自定义模块必须是.py的python脚本文件而不是.ipynb文件(因为Jupyter不建议自定义模块,而是使用工具包)
- 引入的自定义模块必须在ipynb文件的相同目录下(我就是因为通过相对路径导入直接出现异常)
- 对自定义模块内容修改后要重启服务或者重启内核,才能反映到使用该模块的.ipynb文件中。