VSCode - cara mengatur direktori kerja untuk debug

100

Saya mulai menggunakan vscode untuk Python. Saya memiliki program tes sederhana. Saya ingin menjalankannya di bawah debug dan saya perlu mengatur direktori kerja untuk menjalankannya.

Bagaimana / dimana saya melakukan itu?

pengguna1443098
sumber

Jawaban:

154

Komentar @ SpeedCoder5 patut untuk dijawab;

Secara khusus, Anda dapat menentukan direktori kerja dinamis; (yaitu direktori mana pun tempat file Python yang saat ini dibuka berada), menggunakan"cwd": "${fileDirname}"

Jika Anda menggunakan Python: Current File (Integrated Terminal)opsi saat menjalankan Python, launch.jsonfile Anda mungkin terlihat seperti milik saya, di bawah.

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

Ingat launch.jsonfile mengontrol pengaturan run / debug dari proyek kode Visual Studio Anda ; launch.jsonfile saya dibuat secara otomatis oleh VS Code, di direktori "Open Project" saya saat ini. Saya baru saja mengedit file secara manual untuk ditambahkan "cwd": "${fileDirname}"seperti yang ditunjukkan di atas.

Ingat launch.jsonfile mungkin khusus untuk proyek Anda, atau khusus untuk direktori Anda, jadi pastikan Anda mengedit yang benar launch.json (lihat komentar)

Jika Anda tidak memiliki launch.jsonfile, coba ini :

Untuk membuat file launch.json, buka folder proyek Anda di VS Code (File> Open Folder) dan kemudian pilih ikon Configure gear di bilah atas tampilan Debug.

Kacang Merah
sumber
6
Adakah cara untuk mengatur ini sebagai pengaturan default untuk semua konfigurasi?
Serhiy
1
Pastikan Anda mengedit file launch.json yang benar! Dalam pengalaman saya, VS Code membuat direktori .vscode di setiap folder proyek yang saya buka. Jika kemarin Anda membuka folder orang tua / dan hari ini Anda membuka orang tua / anak /, Anda harus melakukan perubahan dengan benar.
chrisinmtown
1
Ada file lain yang terlihat mirip dengan launch.json: workspace [x] .code-workspace. Ini memiliki kunci 'peluncuran'. Apakah pengaturan ini mirip dengan entri launch.json?
Timo
1
Dapatkah saya menyetel folder di terminal ke folder tempat skrip itu ?. Misalnya baris skrip ps1 terakhir saya adalah set-location foo, saya ingin terminal berada di foo.
Timo
1
Jawaban ini tidak berhasil untuk saya, tetapi yang ini berhasil: stackoverflow.com/a/62331298/65326
Apreche
44

Yang perlu Anda lakukan adalah mengkonfigurasi pengaturan cwd di file launch.json sebagai berikut:

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

Informasi lebih lanjut tentang ini dapat ditemukan di situs web resmi dokumen VS Code .

Mengenakan
sumber
Yup, lakukan itu. Saya melihat bahwa itu sebenarnya adalah direktori .vscode, jadi saya rasa saya perlu menambahkan \ .. sampai akhir, bukan?
pengguna1443098
Ya, akan mengubah jawaban sesuai
Don
18
"cwd": "${fileDirname}"untuk berjalan di direktori file open source saat ini
SpeedCoder5
16

Pengaturan ini membantu saya:

{
  "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
sumber
12

Dalam beberapa kasus, mungkin berguna juga untuk mengatur PYTHONPATHbersama dengan workspaceFolder:

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

CermakM
sumber
3

Saya memposting konfigurasi sampel ini untuk orang yang menggunakan TypeScript di Node.js

dalam proyek saya, file TypeScript server Node.js saya terletak di folder Application_ts dan file js yang dikompilasi dibuat di folder bernama Application

karena ketika kita menjalankan aplikasi kita dalam mode debug atau memulainya biasanya kita harus mulai dari folder Aplikasi yang berisi file js jadi di bawah konfigurasi jalankan debug dari folder root tempat application_ts saya juga ada dan berfungsi dengan baik

{
  "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
sumber
1

Anda dapat mengatur direktori kerja saat ini untuk program debug menggunakan cwdargumen dilaunch.json

Krzysztof Cieslak
sumber
Super! Membawa saya ke langkah berikutnya. Sekarang, mencoba untuk benar-benar menjalankan program dalam debug. berikut kodenya: print (os.getcwd ())
user1443098
Super! Membawa saya ke langkah berikutnya. Saya memiliki satu baris: print (os.getcwd ()) yang ingin saya debug. Saya mengklik ikon debug (atau menekan F5), Ada garis bergerak biru kecil di bawah pulldown Environment. Namun, kode saya tidak pernah berjalan. Sepertinya saya melewatkan sesuatu. Apa itu?
pengguna1443098
lupakan dua yang terakhir, saya mengerti
pengguna1443098
1
Hal berikutnya. Menggunakan saran tersebut, saya terkejut melihat bahwa $ {workspaceRoot} sebenarnya bukanlah root tetapi direktori .vscode di bawah root. Apakah ini seperti yang diharapkan? Jika demikian, saya dapat menyetel cwd ke $ {workspaceRoot} \ .. (di windows anway)
user1443098