So debuggen Sie ein Programm mit dem Multiprocessing-Modul von Python auf VSCode
Exception escaped from start_client
failed to launch debugger for child process
AssertionError: can only join a child process
RuntimeError: already started
Das Debuggen eines Programms mit dem Multiprocessing-Modul erfordert die folgenden drei Punkte:
Wenn \ _ \ _ name \ _ \ _ == "\ _ \ _ main \ _ \ _": erforderlich ist, damit die Datei (Modul der obersten Ebene) mit dem Debuggen beginnt. Wenn Sie diese Anweisung nicht sehen, fügen Sie sie hinzu, um Ihren Code zu formatieren. In einigen Fällen kann es eine entmutigende Aufgabe sein, aber es ist wichtig.
Wenn Sie beispielsweise Folgendes direkt unter die Hauptanweisung schreiben, funktioniert dies.
Beschreibungsbeispiel
if __name__ == "__main__":
import multiprocessing
multiprocessing.set_start_method('spawn', True)
Für Fenster mehr
freeze_support()
Möglicherweise muss eine Zeile hinzugefügt werden
Drücken Sie Strg + Umschalt + D, um den Debug-Modus aufzurufen und die Konfigurationsdatei launch.json zu bearbeiten.
Fügen Sie hier einen Abschnitt mit dem Namen "subProcess" hinzu: true.
Konfigurationsbeispiel
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"subProcess": true, //Nachtrag
"console": "integratedTerminal"
}
]
}
VSCode kann eine Jupyter-Notebook-Datei (.ipynb) öffnen und ausführen. Es gibt jedoch immer noch keine Möglichkeit, offenen Code zu debuggen. Wenn Sie ein Multiprozessprogramm debuggen möchten, wenden Sie die oben beschriebene Methode an, nachdem Sie es mit der VSCode-Funktion in ein Python-Skript konvertiert haben.
OS: Debian 10 python: 3.7.4 Visual Studio Code: 1.44.0
Recommended Posts