VSCode — 디버그를위한 작업 디렉토리 설정 방법


88

Python에 vscode를 사용하기 시작했습니다. 간단한 테스트 프로그램이 있습니다. 디버그 상태에서 실행하고 싶은데 실행할 작업 디렉토리를 설정해야합니다.

어떻게 / 어디서 수행합니까?

답변:


139

@ SpeedCoder5의 의견은 답이 될 가치가 있습니다.

특히 동적 작업 디렉토리를 지정할 수 있습니다. (즉, 현재 열려있는 Python 파일이있는 디렉토리)"cwd": "${fileDirname}"

Python: Current File (Integrated Terminal)Python을 실행할 때 옵션을 사용하는 경우 launch.json파일이 아래에 나와있을 수 있습니다.

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

[ launch.json파일이 Visual Studio 코드 프로젝트의 실행 / 디버그 설정을 제어 함을 기억하십시오. ] [1]; 내 launch.json파일은 내 현재 "Open Project"의 디렉토리에있는 VS Code에 의해 자동 생성되었습니다. "cwd": "${fileDirname}"위와 같이 파일을 수동으로 편집하여 추가 했습니다.

기억 launch.json그래서 당신이 편집하고 확인, 디렉토리에 프로젝트에 특정 또는 특정 될 수있다 파일을 올바른을 launch.json (주석 참조)

launch.json파일 이없는 경우 다음을 시도하십시오 .

launch.json 파일을 만들려면 VS Code에서 프로젝트 폴더를 연 다음 (파일> 폴더 열기) 디버그보기 상단 표시 줄에서 기어 구성 아이콘을 선택합니다. [1] : https://code.visualstudio.com/docs/editor/debugging#_launch-versus-attach-configurations


6
이것을 모든 구성에 대한 기본 설정으로 설정하는 방법은 무엇입니까?
Serhiy

1
올바른 launch.json 파일을 편집하고 있는지 확인하십시오! 내 경험상 VS Code는 내가 여는 모든 프로젝트 폴더에 .vscode 디렉토리를 만듭니다. 어제 parent / 폴더를 열었고 오늘 parent / child / 폴더를 열었다면 적절하게 변경해야합니다.
chrisinmtown

44

다음과 같이 launch.json 파일에서 cwd 설정을 구성하기 만하면됩니다.

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

이에 대한 자세한 내용은 공식 VS Code 문서 웹 사이트 에서 찾을 수 있습니다 .


네, 그랬습니다. 실제로 .vscode 디렉토리라는 것을 알기 때문에 끝에 \ ..를 추가해야한다고 생각합니다.
user1443098 jul.

예, 그에 따라 답변을 수정합니다
Don

17
"cwd": "${fileDirname}"오픈 소스 파일의 현재 디렉토리에 실행
SpeedCoder5

16

이 설정은 다음을 도와줍니다.

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

9

경우에 PYTHONPATH따라 다음 과 함께 설정하는 것도 유용 할 수 있습니다 workspaceFolder.

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


3

Node.js에서 TypeScript를 사용하는 사람들을 위해이 샘플 구성을 게시하고 있습니다.

내 프로젝트에서 내 Node.js 서버 TypeScript 파일은 Application_ts 폴더에 있으며 컴파일 된 js 파일은 Application이라는 폴더에 생성됩니다.

응용 프로그램을 디버그 모드로 실행하거나 정상적으로 시작할 때 js 파일이 포함 된 Application 폴더에서 시작해야하기 때문에 아래 구성은 내 application_ts도 존재하고 완벽하게 작동하는 루트 폴더에서 디버그를 실행합니다.

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

1

cwd인수를 사용하여 디버깅 된 프로그램의 현재 작업 디렉토리를 설정할 수 있습니다 .launch.json


감독자! 다음 단계로 이동했습니다. 이제 실제로 디버그에서 프로그램을 실행하려고합니다. 여기에 코드가 있습니다 : print (os.getcwd ())
user1443098 jul.

감독자! 다음 단계로 이동했습니다. 디버깅하려는 한 줄짜리 print (os.getcwd ())가 있습니다. 디버그 아이콘을 클릭합니다 (또는 F5 키를 누름). 환경 풀다운 아래에 작은 파란색 움직이는 선이 있습니다. 그러나 내 코드는 실행되지 않습니다. 내가 뭔가를 놓친 것 같아요. 그게 뭐죠?
user1443098 jul.

마지막 두 개는 잊어 버려, 알았습니다
user1443098 jul.

1
다음 것. 제안을 사용하여 $ {workspaceRoot}가 실제로 루트가 아니라 루트 아래의 .vscode 디렉토리라는 사실에 놀랐습니다. 예상대로입니까? 그렇다면, 나는 $ {workspaceRoot} \에 CWD를 설정할 수 있습니다 .. (창에 anway)
user1443098

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.