VSCode - hata ayıklama için çalışma dizini nasıl ayarlanır


100

Python için vscode kullanmaya başladım. Basit bir test programım var. Bunu hata ayıklama altında çalıştırmak istiyorum ve çalıştırma için çalışma dizinini ayarlamam gerekiyor.

Bunu nasıl / nerede yaparım?

Yanıtlar:


154

@ SpeedCoder5'in yorumu bir yanıt olmayı hak ediyor;

Özellikle, dinamik bir çalışma dizini belirtebilirsiniz; (yani, şu anda açık olan Python dosyasının bulunduğu dizin),"cwd": "${fileDirname}"

Python: Current File (Integrated Terminal)Python'u çalıştırırken bu seçeneği kullanıyorsanız, launch.jsondosyanız aşağıda benimki gibi görünebilir.

{
    "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.jsonDosyanın, Visual Studio kod projenizin çalıştırma / hata ayıklama ayarlarını kontrol ettiğini hatırlayın ; Benim launch.jsondosya otomatik oluşturulan benim akımı "Açık Projesi" nin dizinde, VS Kanunu'na göre oldu. "cwd": "${fileDirname}"Yukarıda gösterildiği gibi eklemek için dosyayı el ile düzenledim .

Unutmayın launch.jsonbu yüzden düzenlerken onaylamak için dizine projenize özgü veya spesifik olabilir dosyayı doğru launch.json (yorumunu bakınız)

launch.jsonDosyanız yoksa şunu deneyin :

Launch.json dosyası oluşturmak için VS Code (Dosya> Open Folder) içinde proje klasörünüzü açın ve ardından Debug görünümü üst çubuğundaki Configure gear simgesini seçin.


6
Bunu tüm yapılandırmalar için varsayılan ayar olarak belirlemenin herhangi bir yolu var mı?
Serhiy

1
Doğru launch.json dosyasını düzenlediğinizden emin olun! Deneyimlerime göre VS Code, açtığım her proje klasöründe bir .vscode dizini oluşturur. Dün ebeveyn / klasörünü açtıysanız ve bugün ebeveyn / alt / klasörünü açtıysanız, uygun değişiklikleri yapmanız gerekecektir.
chrisinmtown

1
Launch.json'a benzeyen başka bir dosya var: workspace [x] .code-workspace. Bir 'başlatma' anahtarı vardır. Bu ayar launch.json girişlerine benzer mi?
Timo

1
Terminaldeki klasörü komut dosyasının olduğu klasöre ayarlayabilir miyim? Örneğin, son ps1 betik satırım set-location foo, terminalin foo'da olmasını istiyorum.
Timo

1
Bu cevap benim için işe yaramadı, ancak bu işe yaradı: stackoverflow.com/a/62331298/65326
Apreche

44

Tek yapmanız gereken, launch.json dosyasındaki cwd ayarını aşağıdaki gibi yapılandırmaktır:

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

Bununla ilgili daha fazla bilgi resmi VS Code belgeleri web sitesinde bulunabilir .


Evet, yaptım. Aslında bunun .vscode dizini olduğunu görüyorum, bu yüzden sonuna \ .. eklemem gerektiğini düşünüyorum, değil mi?
user1443098

Evet, cevabı buna göre değiştireceğiz
Don

18
"cwd": "${fileDirname}"açık kaynak dosyanın geçerli dizininde çalıştırmak için
SpeedCoder5

16

Bu ayar bana yardımcı oluyor:

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

12

Bazı durumlarda, aşağıdakilerle PYTHONPATHbirlikte ayarlamak da yararlı olabilir workspaceFolder:

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


3

Bu örnek yapılandırmayı Node.js üzerinde TypeScript kullanan kişiler için gönderiyorum

projemde Node.js sunucum TypeScript dosyalarım Application_ts klasöründe bulunur ve derlenen js dosyaları Application adlı klasörde oluşturulur

çünkü uygulamamızı hata ayıklama modunda çalıştırdığımızda veya normal olarak başlattığımızda, js dosyalarını içeren Uygulama klasöründen başlamalıyız, böylece aşağıdaki yapılandırma, uygulama_t'lerimin de var olduğu ve mükemmel çalıştığı kök klasörden hata ayıklamayı çalıştırır.

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

İçinde cwdargüman kullanarak hata ayıklanan program için geçerli çalışma dizinini ayarlayabilirsiniz .launch.json


Süper! Beni bir sonraki adıma götürdü. Şimdi, programı gerçekten hata ayıklamada çalıştırmaya çalışıyorum. işte kod: print (os.getcwd ())
user1443098

Süper! Beni bir sonraki adıma götürdü. Hata ayıklamak istediğim tek satırlık bir baskı (os.getcwd ()) var. Hata ayıklama simgesine tıklıyorum (veya F5'e basıyorum), Ortam açılır menüsü altında küçük bir mavi hareketli çizgi var. Ancak kodum asla çalışmıyor. Sanırım bir şey kaçırıyorum. Bu ne olabilir?
user1443098

son ikisini unut, anladım
user1443098

1
Sıradaki şey. Öneriyi kullanarak, $ {workspaceRoot} 'un aslında kök değil, kökün altındaki .vscode dizini olduğunu görünce şaşırdım. Bu beklendiği gibi mi? Öyleyse,
cwd'yi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.