我正在使用一个非常常见的项目结构,在包含目录的顶层有 python 包,子目录名为脚本和测试。一般来说,您希望使用此设置将顶级文件夹添加到 sys.path,这样您就可以在脚本和测试中说 import mypackage。
我发现我必须使用两种不同的机制,添加一个 .env 文件来为测试和 linting 等设置 PYTHONPATH,并为终端设置 terminal.integrated.env.windows。
但是这些似乎都不会影响 Python Interactive 窗口,所以如果我在脚本(而不是笔记本)中使用 #%% 定义一个单元格并使用 Ctrl-Enter 运行它,那么它将无法找到我的包位于项目目录的根目录。
有没有一种方法可以在不更改源文件的情况下实现我想要的?理想情况下,将有一种设置导入路径的方法可以在任何地方使用,而不必像 .env 文件那样指定绝对路径。例如,Spyder 可以使用其 PYTHONPATH 管理器执行此操作,并默认添加项目的根目录。
最佳答案
您正在寻找的设置中的魔法关键字是 jupyter.notebookFileRoot
。所以在你的 settings.json
中添加类似的东西
"jupyter.notebookFileRoot": "${workspaceFolder}"
或您需要的任何文件夹。
或者,转到 Settings
(CTRL
+ ,
),选择 Workspace
选项卡并向下滚动到或搜索 Jupyter: Notebook File Root
并在那里输入您的文件夹。
在设置文件中,您还可以添加启动配置等。我的设置文件目前看起来像这样并支持运行完整的 Python 文件 (CTRL
+ F5
) 作为以及交互模式(运行由 # %%
定义的单元格):
{
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"env": {
"PYTHONPATH": "${workspaceFolder}"
},
"cwd": "${workspaceFolder}"
}
]
},
"jupyter.notebookFileRoot": "${workspaceFolder}"
}
关于python - 如何在 VS Code 中设置 Python Interactive 窗口的导入路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63654651/