VSCode - डिबग के लिए कार्य निर्देशिका कैसे सेट करें


100

मैं पायथन के लिए vscode का उपयोग करना शुरू कर रहा हूं। मेरा एक साधारण परीक्षण कार्यक्रम है। मैं इसे डिबग के तहत चलाना चाहता हूं और मुझे रन के लिए वर्किंग डायरेक्टरी सेट करनी होगी।

मैं कैसे / कहाँ करूँ?

जवाबों:


154

@ SpeedCoder5 की टिप्पणी एक जवाब होने के योग्य है;

विशेष रूप से, आप एक गतिशील कार्य निर्देशिका निर्दिष्ट कर सकते हैं; (यानी जो भी वर्तमान में खुली पायथन फ़ाइल स्थित है), का उपयोग कर"cwd": "${fileDirname}"

यदि आप Python: Current File (Integrated Terminal)पायथन चलाते समय विकल्प का उपयोग कर रहे हैं , तो आपकी 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फ़ाइल आपके विज़ुअल स्टूडियो कोड प्रोजेक्ट की रन / डिबग सेटिंग्स को नियंत्रित करती है ; मेरे launch.jsonवर्तमान "ओपन प्रोजेक्ट" की निर्देशिका में वीएस कोड द्वारा मेरी फाइल ऑटो-जनरेट की गई थी। मैंने "cwd": "${fileDirname}"ऊपर दिखाए अनुसार जोड़ने के लिए फ़ाइल को मैन्युअल रूप से संपादित किया ।

याद रखें कि launch.jsonफ़ाइल आपकी परियोजना के लिए विशिष्ट हो सकती है, या आपकी निर्देशिका के लिए विशिष्ट हो सकती है, इसलिए पुष्टि करें कि आप सही संपादन कर रहे हैं launch.json(टिप्पणी देखें)

यदि आपके पास कोई launch.jsonफ़ाइल नहीं है, तो यह आज़माएँ :

लॉन्च.जेसन फ़ाइल बनाने के लिए, वीएस कोड में अपना प्रोजेक्ट फ़ोल्डर खोलें (फ़ाइल> ओपन फ़ोल्डर) और फिर डीबग व्यू टॉप बार पर कॉन्फ़िगर गियर आइकन चुनें।


6
सभी कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट सेटिंग के रूप में इसे सेट करने का कोई तरीका?
सेरही

1
सुनिश्चित करें कि आप सही launch.json फ़ाइल का संपादन कर रहे हैं! मेरे अनुभव में VS कोड मेरे द्वारा खोले गए प्रत्येक प्रोजेक्ट फ़ोल्डर में एक .vscode निर्देशिका बनाता है। यदि कल आपने फ़ोल्डर पैरेंट / खोला और आज आपने पेरेंट / चाइल्ड / खोला, तो आपको उचित बदलाव करने होंगे।
क्रिसिनटाउन

1
एक और फाइल है जो लॉन्च के समान दिखती है। जेसन: वर्कस्पेस [x] .code-वर्कस्पेस। इसमें 'लॉन्च' कुंजी है। क्या यह सेटिंग लॉन्च.जॉन प्रविष्टियों के समान है?
तैमू

1
क्या मैं उस स्क्रिप्ट के फ़ोल्डर में टर्मिनल को फ़ोल्डर में सेट कर सकता हूँ? उदाहरण के लिए मेरी आखिरी ps1 स्क्रिप्ट लाइन सेट-लोकेशन foo है, मैं चाहता हूं कि टर्मिनल foo में हो।
टिमो

1
यह जवाब मेरे काम नहीं आया, लेकिन इसने एक किया: stackoverflow.com/a/62331298/65326
Apreche

44

आपको बस लॉन्चिंग में cwd सेटिंग को कॉन्फ़िगर करना है। फ़ाइल को निम्नानुसार देखें:

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

इसके बारे में अधिक जानकारी आधिकारिक वीएस कोड डॉक्स वेबसाइट पर देखी जा सकती है ।


हाँ, यह किया है। मुझे लगता है कि यह वास्तव में .vscode निर्देशिका है, इसलिए मुझे लगता है कि मुझे अंत में, सही में \ _ को जोड़ने की आवश्यकता है?
15:14 बजे user1443098

हां, तदनुसार उत्तर में संशोधन करेंगे
डॉन

18
"cwd": "${fileDirname}"ओपन सोर्स फ़ाइल की वर्तमान निर्देशिका में चलाने के लिए
स्पीडकोड 5

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
}

12

कुछ मामलों में, यह भी PYTHONPATHसाथ सेट करने के लिए उपयोगी हो सकता है workspaceFolder:

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


3

मैं इस नमूना विन्यास को उन लोगों के लिए पोस्ट कर रहा हूं जो Node.js पर टाइपस्क्रिप्ट का उपयोग करते हैं

मेरी परियोजना में मेरा Node.js सर्वर टाइपस्क्रिप्ट फाइलें फ़ोल्डर में स्थित है Application_ts और संकलित js फाइलें अनुप्रयोग नाम के फ़ोल्डर में उत्पन्न होती हैं।

क्योंकि जब हम अपने एप्लिकेशन को डिबग मोड में चलाते हैं या इसे सामान्य रूप से शुरू करते हैं, तो हमें एप्लिकेशन फ़ोल्डर से शुरू करना चाहिए, जिसमें js फाइलें होती हैं ताकि bellow कॉन्फ़िगरेशन रूट फ़ोल्डर से डिबग चलाए जहां मेरा 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


उत्तम! मुझे अगले कदम के लिए मिला। अब, वास्तव में डिबग में कार्यक्रम चलाने की कोशिश कर रहा है। यहाँ एक कोड है: प्रिंट (os.getcwd ())
user1443098

उत्तम! मुझे अगले कदम के लिए मिला। मेरे पास एक-लाइनर है: प्रिंट (os.getcwd ()) जिसे मैं डिबग करना चाहता हूं। मैं डिबग आइकन (या हिट F5) पर क्लिक करता हूं, पर्यावरण पुलडाउन के तहत थोड़ी नीली चलती रेखा है। हालाँकि, मेरा कोड कभी नहीं चलता। लगता है मुझे कुछ याद आ रहा है। वो क्या हो सकता है?
user1443098

उन पिछले दो को भूल जाओ, मुझे मिल गया
user1443098

1
अगली बात। सुझाव का उपयोग करते हुए, मुझे यह देखकर आश्चर्य हुआ कि $ {workspaceRoot} वास्तव में रूट नहीं था। लेकिन रूट के अंतर्गत .vscode निर्देशिका थी। क्या यह उम्मीद के मुताबिक है? यदि हां, तो मैं $ {कार्यक्षेत्ररूट} (.. खिड़कियों पर
रास्ते

0

वर्तमान कार्य निर्देशिका को उस समय जो भी फ़ाइल आप निष्पादित कर रहे हैं, उसे सेट करने के लिए:

फ़ाइल> वरीयताएँ> सेटिंग्स> पायथन> डेटा विज्ञान> फ़ाइल डेयर में निष्पादित करें

धन्यवाद brch: VSCode में पायथन: काम निर्देशिका को अजगर फ़ाइल के पथ पर हर बार सेट करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.