MKA*_*NET 10 python visual-studio-code jupyter-notebook
dev是我的根目录。我有以下文件。
dev\sitehealthcheck\test.py
dev\sitehealthcheck\draw.py
Run Code Online (Sandbox Code Playgroud)
在test.py中,第一行内容如下:
from sitehealthcheck.draw import *
Run Code Online (Sandbox Code Playgroud)
如果我在 VSCode 终端中运行test.py ,一切都会按预期运行。但是,当我尝试在交互式窗口中执行test.py时,Jupyter 返回:
ModuleNotFoundError:没有名为“sitehealthcheck”的模块
我该怎么做才能让 VSCode 自动在与我正在执行的文件相同的目录中搜索模块?
我更愿意只输入以下行..并且让 VSCode 编辑器/Intellisense 和 Jupyter 自动搜索与我正在执行的文件相同的目录中的模块。
from draw import *
Run Code Online (Sandbox Code Playgroud)
Fel*_*ipe 13
为了支持现有答案,当在子文件夹中使用笔记本和同级文件夹中的模块时,您需要将该行添加jupyter.notebookFileRoot到工作区中的文件中:settings.json
.vscode/settings.json:
{
"python.pythonPath": "env/bin/python",
"jupyter.notebookFileRoot": "${workspaceFolder}"
}
Run Code Online (Sandbox Code Playgroud)
对于交互式窗口,当前工作目录未设置为正在执行的文件的路径,而是设置为您在 VSCode 中打开的工作区文件夹的路径。如果我有以下情况:
WorkspaceFolder:
SubFolder:
MyScript.py
ImportMe.py
Run Code Online (Sandbox Code Playgroud)
如果你MyScript.py在终端中运行,你会想要这样:
from importme import * since the file location is added to the path
Run Code Online (Sandbox Code Playgroud)
但如果您使用交互式窗口,您可以PythonPath按照上面的建议添加到您的窗口中。或者你可以使用这个:
from SubFolder.importme import *
Run Code Online (Sandbox Code Playgroud)
由于 CWD 设置为交互窗口会话的工作区根目录。
| 归档时间: |
|
| 查看次数: |
17335 次 |
| 最近记录: |