Déboguer un programme multi-processus python avec VSCode

Comment déboguer un programme à l'aide du module multitraitement de Python sur VSCode

Lecteur supposé

Exception escaped from start_client  

failed to launch debugger for child process  

AssertionError: can only join a child process  

RuntimeError: already started

Comment faire

Le débogage d'un programme à l'aide du module multitraitement nécessite les trois points suivants:

・ 1. Si \ _ \ _ nom__ == "\ _ \ _ main__": Ecrire

Si \ _ \ _ nom \ _ \ _ == "\ _ \ _ main \ _ \ _": est requis pour que le fichier (module de niveau supérieur) démarre le débogage. Si vous ne voyez pas cette instruction, ajoutez-la pour formater votre code. Cela peut être une tâche ardue dans certains cas, mais elle est essentielle.

・ 2. Écrivez l'instruction multiprocessing.set_start_method ('spawn', True)

Par exemple, écrire ce qui suit directement sous l'instruction principale fonctionnera.

Exemple de description


if __name__ == "__main__": 
    import multiprocessing 
    multiprocessing.set_start_method('spawn', True)

Pour Windows, plus freeze_support()
Il peut être nécessaire d'ajouter une ligne

・ 3. Ecrivez la section '"subProcess": true'in launch.json

Appuyez sur Ctrl + Maj + D pour entrer en mode débogage et modifier le fichier de configuration launch.json.

openjson.jpg

Ajoutez une section appelée "subProcess": true ici.

Exemple de configuration


{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "subProcess": true,    //Postscript
      "console": "integratedTerminal"
    }
  ]
}

Débogage du fichier notebook jupyter (.ipynb)

VSCode peut ouvrir et exécuter le fichier notebook jupyter (.ipynb). Cependant, il n'est toujours pas possible de déboguer le code ouvert. Si vous souhaitez déboguer un programme multi-processus, utilisez VSCode pour le convertir en script python, puis appliquez la méthode ci-dessus.

Environnement confirmé

OS: Debian 10 python: 3.7.4 Visual Studio Code: 1.44.0

Recommended Posts

Déboguer un programme multi-processus python avec VSCode
Multi-processus de manière asynchrone avec python
Déboguer Python avec VS Code
Déboguer avec l'interpréteur PEPPER python
Déboguer les bibliothèques partagées avec VScode
Je veux déboguer avec Python
[Python] Un programme qui crée des escaliers avec #
[Python] Afficher le bloc de données dans la console de débogage VScode
Programme d'analyse des contraintes FEM 2D par Python
Programmes Python de document HTML avec Sphinx
déboguer la connexion mysql avec python mysql.connector
[Python] Programme d'achat
FizzBuzz en Python3
Grattage avec Python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
[Python] À propos du multi-processus
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Déboguer avec VS Code en utilisant Boost Python Numpy
[python] [vscode] Lorsque vous vous fâchez avec space-tab-mixed
Exemple de programme qui génère un syslog avec la journalisation Python
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
"Orienté objet" appris avec python
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Exécutez prepDE.py avec python3
[Note] Une histoire sur Anaconda et VScode ayant des problèmes avec une erreur d'importation de python
1.1 Premiers pas avec Python
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Grattage avec Python + PhantomJS
Publier des tweets avec python
Conduisez WebDriver avec python
Utiliser mecab avec Python 3
[Python] Redirection avec CGIHTTPServer