VSCode — hoe de werkmap voor debug in te stellen

Ik begin vscode voor Python te gebruiken. Ik heb een eenvoudig testprogramma. Ik wil het uitvoeren onder debug en ik moet de werkmap voor de run instellen.

Hoe/waar doe ik dat?


Antwoord 1, autoriteit 100%

De opmerking van @SpeedCoder5 verdient een antwoord;

U kunt een dynamische werkmap specificeren; (dwz in welke map het momenteel geopende Python-bestand zich ook bevindt), met behulp van "cwd": "${fileDirname}"— dit maakt gebruik van de “variables reference”-functie in VS Codeen de vooraf gedefinieerde variabele fileDirname

Als u de optie Python: Current File (Integrated Terminal)gebruikt wanneer u Python uitvoert, kan uw launch.json-bestand er als het mijne uitzien, hieronder (meer informatie over launch.json-bestanden hier) .

{
    "version": "0.2.0",
    "configurations": [
    {
            "name": "Python: Current File (Integrated Terminal)",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}"
    }, 
    //... other settings, but I modified the "Current File" setting above ...
}

Onthoud de launch.jsonbestand regelt de run/debug-instellingen van uw Visual Studio-codeproject; mijn bestand launch.jsonis automatisch gegenereerd door VS Code, in de map van mijn huidige “Open Project”. Ik heb het bestand zojuist handmatig bewerkt om "cwd": "${fileDirname}"toe te voegen zoals hierboven weergegeven.

Onthoud dat het bestand launch.jsonspecifiek kan zijn voor uw project of specifiek voor uw directory, dus controleer of u de juistelaunch.json(zie opmerking)

Als u geen launch.json-bestand heeft, probeer dit:

Om een ​​launch.json-bestand te maken, opent u uw projectmap in VS Code (File > Open Folder) en selecteert u vervolgens het tandwielpictogram configureren op de bovenste balk van de foutopsporingsweergave.


Antwoord 2, autoriteit 20%

Het enige dat u hoeft te doen, is de cwd-instelling in het launch.json-bestand als volgt configureren:

{
    "name": "Python",
    "type": "python",
    "pythonPath":"python", 
    ....
    "cwd": "<Path to the directory>"
    ....
}

Meer informatie hierover is te vinden op de officiële VS Code docs-website.


Antwoord 3, autoriteit 10%

Deze instelling helpt me:

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "cwd": "${workspaceFolder}\\app\\js", // set directory here
  "program": "${workspaceFolder}\\app\\js\\server.js", // set start js here
}

Antwoord 4, autoriteit 8%

In sommige gevallen kan het ook handig zijn om de PYTHONPATHsamen met de workspaceFolderin te stellen:

{
    "name": "Python: Current File",
    "type": "python",
    "request": "launch",
    "program": "${file}",
    "console": "integratedTerminal",
    "cwd": "${workspaceFolder}",
    "env": {
        "PYTHONPATH": "${cwd}"
    }
}

Antwoord 5, autoriteit 2%

Ik plaats deze voorbeeldconfiguratie voor mensen die TypeScript gebruiken op Node.js

in mijn project bevinden mijn Node.js server TypeScript-bestanden zich in de map Application_ts
en de gecompileerde js-bestanden worden gegenereerd in de map met de naam Toepassing

omdat wanneer we onze applicatie in debug-modus uitvoeren of normaal starten, we zouden moeten beginnen vanuit de applicatiemap die de js-bestanden bevat
dus bellow configuratie voer debug uit vanuit de hoofdmap waar mijn application_ts ook bestaat en perfect werkt

{
  "version": "0.2.0",
  "configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "Debug TypeScript in Node.js",
        "program": "${workspaceRoot}\\Application\\app.js",
        "cwd": "${workspaceRoot}\\Application",
        "protocol": "inspector",
        "outFiles": [],
        "sourceMaps": true
    },        
    {
        "type": "node",
        "request": "attach",
        "name": "Attach to Process",
        "port": 5858,
        "outFiles": [],
        "sourceMaps": true
    }
 ]
}

Antwoord 6

U kunt de huidige werkmap voor het debuggen programma instellen met het argument cwdin launch.json


Antwoord 7

Om de huidige werkmap in te stellen op het bestand dat u op dat moment uitvoert:

Bestand > Voorkeuren > Instellingen > Python > Gegevenswetenschap > Uitvoeren in Bestandsmap

Bedankt brch: Python in VSCode: Stel de werkmap elke keer in op het pad van het python-bestand

Other episodes