簡體   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