已解决:我忘记更新program
密钥以始终指向main.py
,因此我的配置将当前打开的文件作为Python脚本运行。正确设置program
密钥或导航到其他文件是解决方案。当StackOverflow允许我时,我会将我的答案标记为解决方案。
我正在尝试从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解析。对此有何解决方法?
答案 0 :(得分:9)
我发现了我的问题。我没有更新program
密钥以始终指向我的main.py
。相反,当前打开的文件作为Python脚本执行 - launch.json
更改program
键或导航到另一个文件解决了问题。一旦你注意到它就显而易见了!
答案 1 :(得分:1)
我认为更简单的解决方案是:
正如Nick提到的那样,当在编辑器中专注于launch.json时,调试系统将在launch.json本身而不是python文件上运行。
如下所示修改launch.json中的“程序”:
"program": "${workspaceFolder}/main.py",
它对应于
程序密钥始终指向main.py
如尼克所说。
请注意,如果将main.py放在较深的目录中,则上述修改可能无法正常工作。