![](/img/trans.png)
[英]SyntaxError: invalid syntax (when running python code from shell)
[英]`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
密钥或导航到不同的文件解决了这个问题。 一旦你注意到它就很明显了!
我认为更简单的解决方案是:
正如 Nick 提到的,在编辑器中关注 launch.json 时,调试系统在 launch.json 本身上运行,而不是 python 文件。
修改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.