2025, Oct 18 05:31
VS Code में conda run समस्या: Run बटन से सीधे python.exe कैसे चलाएँ
VS Code में Run बटन conda run से Python चलाए तो non‑initialized शेल में त्रुटि आती है. कारण: Python एक्सटेंशन. समाधान: Python Environments डिसेबल कर सीधे python.exe चलाएँ.
जब VS Code में Run बटन आपके वर्चुअल एन्वायरनमेंट के इंटरप्रेटर की जगह conda run के साथ Python चलाने लगता है, तो यह पुराने वर्कफ़्लो को तोड़ देता है और कुछ शेल में तो बिल्कुल चल ही नहीं पाता। अपेक्षित व्यवहार यह है कि चुने हुए एन्वायरनमेंट के python.exe को सीधे कॉल किया जाए, लेकिन बटन अचानक conda के जरिए रूट करने लगता है—और अगर टर्मिनल सत्र Conda या Miniforge के लिए इनिशियलाइज़ नहीं है, तो यह तरीके से काम ही नहीं करता।
अनपेक्षित कमांड का उदाहरण
प्ले बटन दबाने पर इंटरप्रेटर के सीधे पाथ की जगह conda का रैपर चल जाता है। अगर PowerShell Conda के लिए इनिशियलाइज़ नहीं है, तो आउटपुट कुछ इस तरह आ सकता है:
(base) PS C:\Users\dev\Desktop\proj> & conda run --live-stream --name envBase python C:/Users/dev/Desktop/proj/app.py
usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ...
conda-script.py: error: argument COMMAND: invalid choice: '' (choose from activate, clean, commands, compare, config, create, deactivate, env, export, info, init, install, list, notices, package, doctor, repoquery, remove, uninstall, rename, run, search, update, upgrade)
आदर्श रूप से, चुने गए एन्वायरनमेंट के इंटरप्रेटर को सीधे कॉल होना चाहिए—यानी conda run के बिना उसी एन्वायरनमेंट के python.exe पाथ से स्क्रिप्ट चलने जैसी प्रक्रिया।
असल में हो क्या रहा है
गड़बड़ी इसलिए होती है क्योंकि अक्सर मान लिया जाता है कि प्ले बटन Code Runner से नियंत्रित है। इस स्थिति में Run Python File क्रिया वास्तव में Code Runner नहीं, बल्कि VS Code के Python-संबंधित एक्सटेंशन की है। इसलिए executorMap जैसी Code Runner सेटिंग बदलने से Run Python File पर कोई असर नहीं पड़ता। इसी व्यवहार—जिसमें conda run के जरिए घुमा कर चलाना भी शामिल है—को Python एक्सटेंशन के इश्यू ट्रैकर में रिपोर्ट और चर्चा किया गया है, जिससे स्पष्ट होता है कि यह बदलाव कहां से आ रहा है.
संदर्भ के लिए, Python एक्सटेंशन रिपोजिटरी में ये रिपोर्टें देखें: https://github.com/microsoft/vscode-python/issues/18634 और https://github.com/microsoft/vscode-python/issues/25335#issuecomment-3134925306.
सीधा Python कॉल बहाल करने वाला उपाय
व्यावहारिक उपाय है Python Environments एक्सटेंशन को डिसेबल करना। इसे बंद करने के बाद Run बटन अब conda run के जरिए चलाने पर जोर नहीं देता। जरूरत हो तो VS Code को रीस्टार्ट करें ताकि बदलाव लागू हो जाए। इसके बाद रन एक्शन चुने हुए वर्चुअल एन्वायरनमेंट के इंटरप्रेटर को सीधे कॉल करने के अपेक्षित तरीके से काम करता है।
कमांड स्तर पर पहले और बाद में
समस्या वाला कमांड (Conda के जरिए घुमाकर):
& conda run --live-stream --name envBase python C:/Users/dev/Desktop/proj/app.py
सक्रिय एन्वायरनमेंट से अपेक्षित सीधा इंटरप्रेटर कॉल:
C:\path\to\current-env\python.exe C:\Users\dev\Desktop\proj\app.py
रोज़मर्रा के काम में यह क्यों मायने रखता है
यह समझ लेना कि Run बटन किस VS Code घटक के अंतर्गत आता है, आपको गलत सेटिंग्स के पीछे भागने से बचाता है। अगर आपका टर्मिनल Conda-इनिशियलाइज़्ड शेल नहीं है, तो conda run असफल होगा—भले ही आपका एन्वायरनमेंट और कोड दोनों सही हों। Python Environments को डिसेबल करने से प्ले बटन सीधे-सपाट निष्पादन मॉडल पर आ जाता है और Conda या Miniforge से जुड़ी शेल-विशिष्ट दिक्कतों से बचाव होता है।
निष्कर्ष
यदि VS Code का प्ले बटन conda run चलाने लगे और आपका वर्कफ़्लो बिगड़ जाए, तो Code Runner में छेड़छाड़ न करें—समस्या के सही स्रोत पर ध्यान दें। Run Python File क्रिया Python एक्सटेंशन से आती है, और Python Environments एक्सटेंशन को डिसेबल करने से चुने हुए एन्वायरनमेंट से python.exe का सीधा निष्पादन वापस मिल जाता है। अगर आप Conda रूटिंग बनाए रखना चाहते हैं, तो Conda-इनिशियलाइज़्ड टर्मिनल का उपयोग जारी रख सकते हैं; वरना, उस एक्सटेंशन को बंद करना सरल और अनुमानित कॉल पाथ वापस लाता है।
यह लेख StackOverflow पर प्रश्न Zhang Xuan द्वारा और उसी लेखक Zhang Xuan के उत्तर पर आधारित है।