繁体   English   中英

`SyntaxError: invalid syntax` 在 macOS 上的 VS Code 中启动 Python 脚本时

[英]`SyntaxError: invalid syntax` when starting Python script in VS Code on macOS

我正在尝试从 Visual Studio 代码运行 Python 脚本,但该脚本无法运行并崩溃,并且SyntaxError指向launch.json开头的注释。

launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python | Default",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "pythonPath": "${config:python.pythonPath}",
            "program": "${file}",
            "cwd": "${workspaceFolder}",
            "env": {},
            "envFile": "${workspaceFolder}/.env",
            "debugOptions": [
                "RedirectOutput"
            ]
        }
    ]
}

终端输出:

File ".../.vscode/launch.json", line 2
    // Use IntelliSense to learn about possible attributes.
     ^
SyntaxError: invalid syntax

settings.json

{
    "python.pythonPath": "${workspaceFolder}/venv/bin/python"
}

我早些时候在我的 Windows 机器上工作,所有这些工作都非常好。 出于某种原因,VSCode 试图通过 Python 运行launch.json文件,而//在 Python 中是无效的注释语法。 如果我删除评论,我会收到此错误:

Traceback (most recent call last):
  File ".../.vscode/launch.json", line 8, in <module>
    "stopOnEntry": false,
NameError: name 'false' is not defined

如果我使用 Python 的False ,我不会崩溃,但什么也不会发生,我的脚本也不会运行。 看起来很像launch.json被 Python 错误地解析了。 有什么解决办法吗?

我发现了我的问题。 我没有更新program密钥以始终指向我的main.py 相反,当前打开的文件是作为 Python 脚本执行的launch.json更改program密钥或导航到不同的文件解决了这个问题。 一旦你注意到它就很明显了!

解决方案 1

我认为更简单的解决方案是:

  1. 关闭编辑器组上的launch.json
  2. 打开要调试的python文件如main.py
  3. 【运行】-【开始调试】(F5)

正如 Nick 提到的,在编辑器中关注 launch.json 时,调试系统在 launch.json 本身上运行,而不是 python 文件。

解决方案 2

修改launch.json中的“程序”如下:

"program": "${workspaceFolder}/main.py",

它对应于

程序键始终指向 main.py

正如尼克所说。

请注意,如果 main.py 放在较深的目录中,上述修改可能无法正常工作。

如果它可以编辑,则关闭launch.json可能会解决问题

如果launch.json是最新打开的文件,VSCode 可能会尝试将launch.json作为 Python 模块运行(尽管它显然不是 Python 模块)。

请参阅 OP 的第三个屏幕截图中的NameError - 看起来像 Python 解释器针对launch.json运行

更新:需要仔细阅读(并查看代码),但对于大多数用例来说,公认的答案是一个更永久的解决方案——尽管我认为 VS Code 的 Python 插件在尝试运行非.py文件作为 Python 代码

暂无
暂无

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

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