python - 如何在 VS Code 中设置 Python Interactive 窗口的导入路径?

标签 python visual-studio-code

我正在使用一个非常常见的项目结构,在包含目录的顶层有 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/

相关文章:

javascript - 如何在vscode扩展中打开本地(扩展包内)文件

sass - Angular 4 - SASS 智能感知 - vsCode

java - Spring Boot 仪表板不会在 VSCode 上显示应用程序

python - Raspberry pi 使用 bluetooth.discover_devices() 与 python 不工作

python - 难以理解如何正确地将 Perl 匹配转换为 Python

visual-studio-code - 如何在Visual Studio Code中停止复制空白行中的空白?

visual-studio-code - 如何在构建时在VS Code中运行多个任务?

python - 检测是否支持 IPv6、与操作系统无关、没有外部程序?

python - 变量在某个地方失去了它的值(value)

python - Dialogflow 履行 Webhook 连接失败