विजुअल स्टूडियो कोड को कॉन्फ़िगर करना

विज़ुअल स्टूडियो कोड (VSCode) एक निःशुल्क कोड संपादक है, जो macOS, Linux और Windows ऑपरेटिंग सिस्टम पर चलता है। इसमें शानदार टूलिंग समर्थन है जो पायथन और सी++ विकास, विज़ुअल डिबगिंग, गिट के साथ एकीकरण और कई अन्य दिलचस्प सुविधाओं का समर्थन करता है। उपयोग में आसानी और विस्तार प्रबंधन के कारण, यह TensorFlow IO विकास के लिए एक बेहतरीन संपादक है। हालाँकि, इसे ठीक से कॉन्फ़िगर करने के लिए कुछ प्रयास आवश्यक हैं। चूंकि VSCode कॉन्फ़िगरेशन बहुत लचीला है, यह डेवलपर्स को बेज़ेल का उपयोग करके प्रोजेक्ट संकलित करने और पायथन और C++ डिबगर्स के तहत कोड चलाने की अनुमति देता है। ऑपरेशन सिस्टम के आधार पर बेस टूल सेटअप भिन्न हो सकता है, लेकिन कॉन्फ़िगरेशन दृष्टिकोण समान होना चाहिए।

एक्सटेंशन

एक्सटेंशन इंस्टॉल करने के लिए साइडबार पर एक्सटेंशन व्यू आइकन (एक्सटेंशन) पर क्लिक करें, या शॉर्टकट Ctrl+Shift+X का उपयोग करें। फिर नीचे कीवर्ड खोजें।

  • सी/सी++ - माइक्रोसॉफ्ट का आधिकारिक सी++ एक्सटेंशन
  • पायथन - माइक्रोसॉफ्ट का आधिकारिक पायथन एक्सटेंशन
  • पायथन एक्सटेंशन पैक - पायथन विकास के लिए एक और उपयोगी एक्सटेंशन

परियोजनाओं का संकलन

TensorFlow IO को बेज़ेल बिल्ड कमांड का उपयोग करके संकलित किया गया है:

bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...

उबंटू में विकास वातावरण कैसे स्थापित करें, इसके विवरण के लिए प्रोजेक्ट README फ़ाइल देखें। --compilation_mode dbg फ़्लैग यहां इंगित करता है कि उत्पादित बाइनरी में डिबग प्रतीक होने चाहिए। एक बार जब आप कमांड लाइन से प्रोजेक्ट संकलित कर लेते हैं, तो आप उसी कमांड को लागू करने में सक्षम होने के लिए VSCode को भी कॉन्फ़िगर कर सकते हैं।

व्यू->कमांड पैलेट खोलें ( Ctrl+Shift+P ) और टाइप करना प्रारंभ करें: "कार्य: बिल्ड कार्य कॉन्फ़िगर करें"। यदि आप पहली बार ऐसा कर रहे हैं, तो संपादक आपको Tasks.json फ़ाइल बनाने का सुझाव देगा। एक बार आपके पास यह हो जाए, तो निम्नलिखित json पेस्ट करें:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build TF.IO (Debug)",
            "type": "shell",
            "command": "bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

अब, आप Ctrl+Shift+B दबा सकते हैं, और VSCode प्रोजेक्ट बनाने के लिए उपरोक्त कमांड का उपयोग करेगा। यह अपनी स्वयं की टर्मिनल विंडो का उपयोग करता है, जहां सभी लिंक क्लिक करने योग्य होते हैं। इसलिए जब कोई संकलन त्रुटि होती है, तो आप संबंधित फ़ाइल खोलते हैं और टर्मिनल विंडो में लिंक पर क्लिक करके लाइन पर नेविगेट करते हैं।

डिबगिंग परियोजनाएं

पायथन कोड को डीबग करना मामूली बात है, इसे सक्षम करने के लिए VSCode को कॉन्फ़िगर करने का तरीका जानने के लिए आधिकारिक दस्तावेज़ का पालन करें: https://code.visualstudio.com/docs/python/debugging

हालाँकि, C++ कोड को डीबग करने के लिए आपके सिस्टम पर GDB इंस्टॉल होना आवश्यक है। यदि आपके पास bq_sample_read.py पायथन स्क्रिप्ट है जो tensorflow-io लाइब्रेरी का उपयोग करती है और सामान्य रूप से निम्नलिखित तरीके से निष्पादित होती है:

python3 bq_sample_read.py --gcp_project_id=...

आप इसे निम्नलिखित का उपयोग करके GDB के अंतर्गत निष्पादित कर सकते हैं:

gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...

यदि एप्लिकेशन C++ कोड चरण में क्रैश हो जाता है, तो आप त्रुटि का स्टैकट्रेस प्राप्त करने के लिए GDB कंसोल में backtrace चला सकते हैं।

VSCode में GDB डिबगर समर्थन भी है। यह ब्रेकप्वाइंट जोड़ने, वेरिएबल्स के मूल्यों का निरीक्षण करने और चरण दर चरण कोड के माध्यम से कदम उठाने की अनुमति देता है। डिबग कॉन्फ़िगरेशन जोड़ने के लिए साइडबार पर डिबग व्यू आइकन (डीबग) दबाएं, या शॉर्टकट Ctrl+Shift+D का उपयोग करें। यहां, प्ले बटन के बगल में छोटा नीचे तीर दबाएं और "कॉन्फ़िगरेशन जोड़ें..." चुनें। अब यह एक launch.json फ़ाइल बनाएगा, जिसमें कृपया निम्नलिखित कॉन्फ़िगरेशन जोड़ें:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "/usr/bin/python3",
    "args": ["bq_sample_read.py", "--gcp_project_id=..."],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            /* path to your bazel-bin folder */
            "name": "TFIO_DATAPATH",
            "value": "/usr/local/google/home/io/bazel-bin"
        },
        {
            /* other env variables to use */
            "name": "GOOGLE_APPLICATION_CREDENTIALS",
            "value": "..."
        }
    ],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

यदि सब कुछ सही ढंग से कॉन्फ़िगर किया गया है, तो आपको रन -> डिबगिंग प्रारंभ करें ( F5 ) या रन -> डिबगिंग के बिना चलाएँ ( Ctrl + F5 ) करने में सक्षम होना चाहिए। यह आपके कोड को डिबगर के अंतर्गत चलाएगा:

VSCode डिबगर

डिबगिंग अनुभव को और सरल बनाने के लिए, आप मानक C++ लाइब्रेरीज़ को छोड़ने के लिए GDB को कॉन्फ़िगर कर सकते हैं। यह आपको उस कोड को अनदेखा करने की अनुमति देता है जिसकी आपको परवाह नहीं है। ऐसा करने के लिए, निम्नलिखित सामग्री के साथ एक ~/.gdbinit फ़ाइल बनाएं:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

फ़ाइलों का स्वरूपण

आप हमेशा राइट क्लिक -> फॉर्मेट डॉक्यूमेंट ( Ctrl + Shift + I ) द्वारा C++ या Python फ़ाइल को दोबारा फ़ॉर्मेट कर सकते हैं, लेकिन VSCode एक अलग स्टाइल कन्वेंशन का उपयोग करता है। सौभाग्य से, इसे बदलना आसान है।

पायथन फ़ॉर्मेटिंग के लिए, https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/ देखें

C++ फ़ॉर्मेटिंग के लिए, निम्न कार्य करें:

  • प्राथमिकताएँ -> सेटिंग्स पर जाएँ
  • "C_Cpp.clang_format_fallbackStyle" खोजें
  • निम्नलिखित सामग्री जोड़कर file:setting.json फ़ाइल को सीधे संशोधित करें
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"