在我的笔记本分析中,我想使用一些用不同脚本(但在同一文件夹中)编写的函数。看起来像这样:
main folder:
- subfolder
- __init__.py
- my_script.py
- my_notebook.ipynb
当我想在
my_script
的单元格中导入 my_notebook
时,我始终收到 No module named my_script
错误。我不明白为什么会发生这种情况,即使这些文件位于同一文件夹中。我该如何导入my_script
? IDE 没有抛出任何错误,我尝试了多种方法来导入它,但没有取得太大成功。
这就是笔记本的工作原理,你不能这样做。据我所知,您只能从笔记本中的全局 PYTHONPATH 导入。
我发现的最简单的解决方案,也是我经常使用的。
import sys
sys.path.append('.')
那么你应该能够做到
import my_script
正如其他人在评论中所说,问题出现在当前工作目录(cwd)。人们可以使用以下命令来查找 jupyter 笔记本认为 cwd 的内容,然后从那里相对或直接更改它:
import os #imports os
print(os.getcwd()) #check the cwd
os.chdir("new_folder") #change the cwd via absolute or relative path
print(os.getcwd()) #check the new cwd
更多背景信息:
我在 jupyter lab linux 服务器中的文件夹之间移动 jupyter 笔记本时遇到了这个问题,可能是移动笔记本时 cwd 没有更新。
这是一个相当老的问题,但也许这个答案会帮助下一个人解决这个问题