簡體   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