![](/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.