笔记本无法在同一文件夹中导入模块(Python)

问题描述 投票:0回答:2

在我的笔记本分析中,我想使用一些用不同脚本(但在同一文件夹中)编写的函数。看起来像这样:

main folder:
     - subfolder
         - __init__.py
         - my_script.py
         - my_notebook.ipynb

当我想在

my_script
的单元格中导入
my_notebook
时,我始终收到
No module named my_script
错误。我不明白为什么会发生这种情况,即使这些文件位于同一文件夹中。我该如何导入
my_script
? IDE 没有抛出任何错误,我尝试了多种方法来导入它,但没有取得太大成功。

python import ipython
2个回答
1
投票

这就是笔记本的工作原理,你不能这样做。据我所知,您只能从笔记本中的全局 PYTHONPATH 导入。

我发现的最简单的解决方案,也是我经常使用的。

import sys
sys.path.append('.')

那么你应该能够做到

import my_script


0
投票

正如其他人在评论中所说,问题出现在当前工作目录(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

可以查看这两个网站了解更多信息:
注意
python 文档

更多背景信息: 我在 jupyter lab linux 服务器中的文件夹之间移动 jupyter 笔记本时遇到了这个问题,可能是移动笔记本时 cwd 没有更新。
这是一个相当老的问题,但也许这个答案会帮助下一个人解决这个问题

© www.soinside.com 2019 - 2024. All rights reserved.