VSCode - jak ustawić katalog roboczy do debugowania

88

Zaczynam używać vscode dla Pythona. Mam prosty program testowy. Chcę go uruchomić w trybie debugowania i muszę ustawić katalog roboczy do uruchomienia.

Jak / gdzie mam to zrobić?

user1443098
źródło

Odpowiedzi:

141

Komentarz @ SpeedCoder5 zasługuje na odpowiedź;

W szczególności możesz określić dynamiczny katalog roboczy; (tj. w jakimkolwiek katalogu, w którym znajduje się aktualnie otwarty plik Pythona), używając"cwd": "${fileDirname}"

jeśli używasz tej Python: Current File (Integrated Terminal)opcji podczas uruchamiania Pythona, Twój launch.jsonplik może wyglądać jak mój, poniżej.

{
    "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 ...
}

[Pamiętaj, że launch.jsonplik kontroluje ustawienia uruchamiania / debugowania projektu kodu programu Visual Studio] [1]; mój launch.jsonplik został automatycznie wygenerowany przez VS Code w katalogu mojego bieżącego „otwartego projektu”. Po prostu ręcznie zmodyfikowałem plik, aby dodać, "cwd": "${fileDirname}"jak pokazano powyżej.

Pamiętaj, że launch.jsonplik może być specyficzny dla twojego projektu lub specyficzny dla twojego katalogu, więc potwierdź, że edytujesz poprawny launch.json (patrz komentarz)

Jeśli nie masz launch.jsonpliku, spróbuj tego :

Aby utworzyć plik launch.json, otwórz folder projektu w programie VS Code (plik> Otwórz folder), a następnie wybierz ikonę Konfiguruj koło zębate na górnym pasku widoku debugowania. [1]: https://code.visualstudio.com/docs/editor/debugging#_launch-versus-attach-configurations

Groszek czerwony
źródło
6
Czy jest jakiś sposób, aby ustawić to jako ustawienie domyślne dla wszystkich konfiguracji?
Serhiy
1
Upewnij się, że edytujesz właściwy plik launch.json! Z mojego doświadczenia wynika, że ​​VS Code tworzy katalog .vscode w każdym otwartym folderze projektu. Jeśli wczoraj otworzyłeś folder nadrzędny /, a dziś otworzyłeś folder rodzic / dziecko /, będziesz musiał odpowiednio wprowadzić zmiany.
chrisinmtown
44

Wszystko, co musisz zrobić, to skonfigurować ustawienie cwd w pliku launch.json w następujący sposób:

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

Więcej informacji na ten temat można znaleźć na oficjalnej stronie dokumentów VS Code .

Don
źródło
Tak, zrobiłem to. Widzę, że to właściwie katalog .vscode, więc myślę, że muszę dodać \ .. na końcu, prawda?
user1443098
Tak, odpowiednio poprawi odpowiedź
Don
17
"cwd": "${fileDirname}"do uruchomienia w bieżącym katalogu pliku open source
SpeedCoder5
16

To ustawienie pomaga mi:

{
  "type": "node",
  "request": "launch",
  "name": "Launch Program",
  "cwd": "${workspaceFolder}\\app\\js", // set directory here
  "program": "${workspaceFolder}\\app\\js\\server.js", // set start js here
}
Xin
źródło
9

W niektórych przypadkach przydatne może być również ustawienie PYTHONPATHwraz z workspaceFolder:

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

CermakM
źródło
3

Publikuję tę przykładową konfigurację dla osób, które używają TypeScript na Node.js.

w moim projekcie moje pliki TypeScript serwera Node.js znajdują się w folderze Application_ts, a skompilowane pliki js są generowane w folderze o nazwie Application

ponieważ kiedy uruchamiamy naszą aplikację w trybie debugowania lub uruchamiamy ją normalnie powinniśmy zacząć od folderu aplikacji, który zawiera pliki js, więc poniżej konfiguracja uruchom debugowanie z folderu głównego, w którym moja application_ts również istnieje i działa idealnie

{
  "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
    }
 ]
}
MJ X
źródło
1

Możesz ustawić bieżący katalog roboczy dla debugowanego programu używając cwdargumentu wlaunch.json

Krzysztof Cieślak
źródło
Wspaniały! Doprowadziło mnie do następnego kroku. Teraz próbuję uruchomić program w trybie debugowania. oto kod: print (os.getcwd ())
user1443098
Wspaniały! Doprowadziło mnie do następnego kroku. Mam jedną linijkę: print (os.getcwd ()), którą chcę debugować. Klikam ikonę debugowania (lub naciskam klawisz F5). W menu rozwijanym Środowisko znajduje się mała niebieska ruchoma linia. Jednak mój kod nigdy nie działa. Chyba czegoś mi brakuje. Co by to było?
user1443098
zapomnij o tych dwóch ostatnich, rozumiem
user1443098
1
Następna rzecz. Korzystając z tej sugestii, byłem zaskoczony, widząc, że $ {workspaceRoot} nie jest w rzeczywistości katalogiem głównym, ale katalogiem .vscode w katalogu głównym. Czy to jest zgodne z oczekiwaniami? Jeśli tak, mogę ustawić cwd na $ {workspaceRoot} \ .. (w każdym przypadku w
systemie