繁体   English   中英

ModuleNotFoundError: No module named... Jupyter Notebooks

[英]ModuleNotFoundError: No module named... Jupyter Notebooks

dev是我的根目录。 我有以下文件。

dev\sitehealthcheck\test.py
dev\sitehealthcheck\draw.py

test.py中,第一行内容如下:

from sitehealthcheck.draw import *

如果我在 VSCode 终端中运行test.py ,一切都会按预期进行。 但是,当我尝试在交互式 window 中执行test.py时,Jupyter 返回:

ModuleNotFoundError:没有名为“sitehealthcheck”的模块

我该怎么做才能使 VSCode 自动在与我正在执行的文件相同的目录中搜索模块?

我宁愿只输入以下行.. 并让 VSCode 编辑器/Intellisense 和 Jupyter 自动搜索与我正在执行的文件相同的目录中的模块。

from draw import *

为了支持现有答案,当使用子文件夹中的笔记本和兄弟文件夹中的模块时,您需要将jupyter.notebookFileRoot行添加到工作区中的settings.json文件中:

.vscode/settings.json

{
    "python.pythonPath": "env/bin/python",
    "jupyter.notebookFileRoot": "${workspaceFolder}"
}

要解决此问题,您可以在 Python 扩展中搜索名为“Python › Data Science: Notebook File Root”的设置。 此设置标题下方的行说:“为 Python 交互窗口设置加载文件的根目录。”。 然后将 ${workspaceFolder} 更改为 ${fileDirname},关闭交互式 Python 终端并重新启动它,它应该可以工作了。

对于交互式窗口,当前工作目录未设置为正在执行的文件的路径,而是设置为您在 VSCode 中打开的工作区文件夹的路径。 如果我有以下情况:

WorkspaceFolder:
    SubFolder:
      MyScript.py
      ImportMe.py

如果你在终端中运行MyScript.py你会想要这个:

from importme import * since the file location is added to the path

但是,如果您使用的是交互式窗口,您可以按照上面的建议添加到您的PythonPath 或者你可以使用这个:

from SubFolder.importme import *

由于 CWD 设置为交互式窗口会话的工作区根目录。

如果将.../dev/sitehealthcheck添加到PYTHONPATH ,则可以import draw

如果 jupyter 笔记本出错

  1. 打开-:anaconda提示
pip install import-ipynb
  1. 打开主文件

导入 import_ipynb

先导入

设置适当的 kenral 和 venv 的简单方法。 尝试如下设置正确的 venv。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM