Visual Studio Code: Debuggen von Python-Skripts mit Argumenten

Lesezeit: 4 Minuten

Benutzeravatar von Francesco Mantovani
Francesco Mantovani

Ich verwende Visual Studio Code, um ein Python-Skript zu debuggen.

Folgend diese Anleitunghabe ich das Argument in der eingerichtet launch.json Datei:

Geben Sie hier die Bildbeschreibung ein

Aber wenn ich drücke Debuggenheißt es, dass mein Argument nicht erkannt wird und Visual Studio Code sagt:

Fehler: nicht erkannte Argumente

Geben Sie hier die Bildbeschreibung ein

Da Visual Studio Code PowerShell verwendet, führen wir dieselbe Datei mit demselben Argument aus:

Geben Sie hier die Bildbeschreibung ein

Also: die gleiche Datei, der gleiche Pfad und das gleiche Argument. Im Terminal funktioniert es, aber nicht in Visual Studio Code.

Wo liege ich falsch?

  • Keine der folgenden Lösungen hat bei mir funktioniert, selbst nachdem ich neu gestartet und eine Stunde damit verbracht hatte! Hat noch jemand eine Empfehlung? Bei mir hat das vor ein paar Monaten funktioniert.

    – Raaka

    17. November 2022 um 14:15 Uhr


Benutzeravatar von Pawan Kumar
Pawan Kumar

Ich denke, dass –City und Auckland als ein einziges Argument verwendet werden. Vielleicht versuchen Sie, sie so zu trennen …

Einziges Argument

    "args": ["--city","Auckland"]

Mehrere Argumente und mehrere Werte

Wie zum Beispiel:

--key1 value1 value2 --key2 value3 value4

Legen Sie sie einfach in die args Liste eins nach dem anderen der Reihe nach:

"args": ["--key1", "value1", "value2", "--key2", "value3", "value4"]

  • Was ist, wenn ich mehrere Argumente habe, wie z --city Auckland --year 2000?

    – Johannes

    29. Mai 2019 um 15:27 Uhr

  • Dann machst du es wie “args: [“–city”, “Auckland”, “–year”, “2000”]

    – Niid

    7. Juni 2019 um 10:10 Uhr

  • Hat jemand Nargs zum Laufen gebracht? args: ["--my-n-args", "4 5"] funktioniert nicht: error: argument -m/--my-n-args: invalid int value: '4 5' Edit: Selber gefunden: args: ["--my-n-args", "4", "5"]

    – oli-ver

    15. Juni 2019 um 11:30 Uhr


  • Wie kann ich dasselbe tun, wenn ich keinen Schlüssel habe? Ich möchte so etwas wie my_program.py train ausführen. Wie kann ich das Argument “Zug” hinzufügen, das keinen Schlüssel hat?

    – konstantin

    1. Dezember 2019 um 14:56 Uhr

  • @konstantin das wäre args: ["train"] Argumente werden von der Shell einfach als Array von Zeichenfolgen an Ihr Programm übergeben, und hier definieren Sie ein Array von Zeichenfolgen im JSON-Format. Das Python-Modul sys präsentiert diese als Liste von Strings.

    – Rob Fischer

    14. Januar 2020 um 18:17 Uhr

Mir ist auch aufgefallen, dass, wenn Sie das Skript ausführen, indem Sie auf die Debug-Schaltfläche klicken, die so aussieht
Geben Sie hier die Bildbeschreibung ein, dann werden die Argumente nicht übergeben. Allerdings mit Run -> Start Debugging (oder seine Abkürzung F5) hat die Argumente erfolgreich übergeben.

  • Ich auch, ich habe die ganze Zeit Python: Run Python File in Terminal verwendet …

    – Spartanisch

    17. April 2022 um 2:09 Uhr

  • @Sourya Dey Gibt es eine Problemumgehung, um das zu beheben und die Argumente von der Debug-Schaltfläche abzurufen?

    – Edson Manoel

    19. Oktober 2022 um 18:25 Uhr

  • @EdsonManoel: Nicht, dass ich wüsste. Aber Sie können die Debug-Schaltfläche in der linken Seitenleiste drücken, damit der Debug-Bereich auf der linken Seite angezeigt wird. Sie können dann auf die grüne Schaltfläche |> klicken (die normalerweise “Python: Aktuelle Datei” anzeigt), und das Skript wird im Debug-Modus mit Argumenten ausgeführt.

    – Sourya Dey

    21. Oktober 2022 um 5:08 Uhr

Benutzeravatar von Shashidhar Kudari
Shashidhar Kudari

qOtAj

Wenn das Klicken auf „Python-Datei debuggen“ die Argumente nicht übergibt, fügen Sie sie hinzu "purpose": ["debug-in-terminal"] im launch.json Datei

{"version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true,
      "args": ["--experimentName", "Debugging"],
      "purpose": ["debug-in-terminal"]
    }
  ]
}

  • Danke, mir fehlte der ‘Zweck’-Schlüssel. Nachdem ich Ihren Kommentar gelesen hatte, fügte ich ihn hinzu und es funktionierte.

    – JRun

    11. Dezember 2022 um 12:03 Uhr

  • FWIW im Jahr 2023 konnte ich diese Argumente nicht richtig übergeben bis Ich habe diesen esoterischen „Zweck“-Wert in meiner launch.json verwendet

    – Austin T

    27. Januar um 20:46 Uhr

Benutzeravatar von Sreeragh AR
Sreeragh AR

--key1 value1 value2 --key2 value3 value4

kann weitergegeben werden als

"args": ["--key1=value1", "value2", "--key2=value3", "value4"]

(Kombination der beiden Antworten von Pawan Kumar und Chunde Huang.)

Benutzeravatar von florian.isopp
florian isopp

Datei launch.json im Ordnerpfad des Python-Projekts .vscodegetestet in Visual Studio Code F5.

{
    // 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: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args": ["c", "pwd"],
        }
    ]
}

Benutzeravatar von Peter Mortensen
Peter Mortensen

In Visual Studio können Sie auf bequeme und natürliche Weise mehrere Parameter übergeben:

--trail=0 --g=0 --V="HO" --save_interval=10 --verbose=True

Ich weiß nur nicht, warum sie dies in Visual Studio Code nicht unterstützen werden. Argumente einzeln aufzulisten ist umständlich und ein bisschen albern. Sie übergeben einfach die Argumentzeichenfolge an den Python-Parser, und die Dinge können einfach erledigt werden.

Benutzeravatar von ingernet
ingernet

Niemand hat dies bisher erwähnt, also dachte ich, ich würde einen Vorschlag machen, der Ihnen einige Minuten und sicherlich etwas geistige Gesundheit ersparen könnte. Ich richte meine launch.json-Datei mit einem ein args array, aber ich konnte meine Argumente nicht im Terminal anzeigen lassen, als ich den Debugger ausführte.

Alles, was ich tun musste, war, VS Code aus irgendeinem Grund zu beenden und neu zu starten. Dann funktionierte es wie ein Champion.

1443280cookie-checkVisual Studio Code: Debuggen von Python-Skripts mit Argumenten

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy