2015-06-15 4 views
18

मैं रन विकल्प के रूप में, पायथन के बजाय, एक शैल स्क्रिप्ट का आह्वान करने के लिए PyCharm को सेट करने का प्रयास कर रहा हूं। क्या यह संभव है? डिफ़ॉल्ट विकल्पों में मेरे पास केवल पाइथन, पायथन डॉक्स और पायथन परीक्षण हैं। पेशेवर संस्करण के साथ मैं Django और अन्य भी है। हालांकि, वे सभी को एक combobox में दुभाषिया के रूप में अजगर है और जहां तक ​​मैं देख सकता हूं उन्हें बदला नहीं जा सकता है।मैं PyCharm रन कॉन्फ़िगरेशन में पायथन के बजाय शेल स्क्रिप्ट कैसे चला सकता हूं?

+0

मैं एक प्रक्षेपण config में बनाया गया हो रही का एक तरीका कभी नहीं मिला है, लेकिन आप pycharm खिड़की के भीतर एक टर्मिनल खोलने के लिए और वहाँ किसी भी कमांड चलाने कर सकते हैं। क्या इससे काम हो जायेगा? – Holloway

+0

@trengot: वास्तव में नहीं। बेशक मैं एक अजगर रैपर स्क्रिप्ट लिख सकता हूं, या बस कपड़े का उपयोग कर सकता हूं, लेकिन यह समझने के लिए एक प्रश्न की तरह है कि मुझे कुछ याद आ रहा है या नहीं। –

उत्तर

15

यदि आप PyCharm में ऐसी सुविधा देखना चाहते हैं तो कृपया IDEA-112256 'Command Line' Run Configuration सुविधा अनुरोध पर वोट दें। Pycharm की ऑनलाइन मदद सूचियों का


Run/Debug Configurations अनुभाग सभी भागो/डीबग विन्यास के प्रकार का समर्थन किया और शेल स्क्रिप्ट वास्तव में के लिए कोई समर्थन नहीं है। हालांकि, आप प्लगइन स्थापित करके ऐसे समर्थन को जोड़ने में सक्षम हो सकते हैं। उदाहरण के लिए, यदि आप बैश स्क्रिप्ट में रूचि रखते हैं तो BashSupport प्लगइन है जो रन/डीबग कॉन्फ़िगरेशन में खोल स्क्रिप्ट चलाने के लिए समर्थन जोड़ता है।

प्लग इन 'मुखपृष्ठ से

:

BashSupports सीधे इंटेलीजे में स्क्रिप्ट चला सकते हैं। आप को बैश स्क्रिप्ट के लिए एक नई रन कॉन्फ़िगरेशन बना सकते हैं। यहां आप सेट कर सकते हैं कि दुभाषिया इसे चलाने के लिए उपयोग किया जाता है। जब भी एक स्क्रिप्ट निष्पादित की जाती है आउटपुट लॉग होता है। यदि बैश वाक्यविन्यास त्रुटियों को प्रिंट करता है तो त्रुटि के स्थान पर कूदने के लिए त्रुटि लाइनें क्लिक करने योग्य हैं।

Windows के लिए जो .cmd स्क्रिप्ट को चलाने के लिए एक कार्रवाई प्रदान करता है CmdSupport प्लगइन नहीं है। ऐसा लगता है कि यह रन/डीबग कॉन्फ़िगरेशन के रूप में ऐसी स्क्रिप्ट चलाने का समर्थन नहीं करता है।

एक समाधान आप अजगर रन/डिबग विन्यास का उपयोग कर सकते हैं, चलाने के लिए और इससे पहले कि प्रक्षेपण विकल्प बाहरी उपकरण को निर्दिष्ट का उपयोग करें और/जोड़ते समय इस बाहरी को विन्यस्त पथ को स्क्रिप्ट पर निर्दिष्ट करने के लिए कुछ डमी (खाली) अजगर फ़ाइल को निर्दिष्ट उपकरण। विवरण के लिए In IntelliJ IDEA, how can I create a key binding that executes a shell script with the current file as a parameter? देखें।

चूंकि पाइचर्म इंटेलिजे के आईडीईए मंच पर आधारित है, तो प्रश्न IntelliJ IDEA: Running a shell script as a Run/Debug Configuration बहुत संबंधित है।


रन/डिबग विन्यास की भाषण आप प्लगइन Run Configuration as Action जो

(...) उपकरण पट्टी पर बटन के रूप में चलाने के विन्यास का उपयोग करने के लिए एक तरीका प्रदान करता है में रुचि हो सकती। या विशिष्ट रन कॉन्फ़िगरेशन निष्पादित करने के लिए शॉर्टकट असाइन करें।

+0

दुर्भाग्यवश, यह नवीनतम PyCharm – DataGreed

+0

के साथ संगत नहीं है यह ठीक काम करता है, @ डेटागाreed: मैंने परीक्षण किया और यह PyCharm 2016.1.2 # बिल्ड पीवाई-145.844 – juliocesar

2

मुझे लगता है कि सबसे आसान तरीका है बस एक अजगर स्क्रिप्ट जो .bat फ़ाइल कॉल लिखना, और फिर से चलाने के लिए है:

from subprocess import Popen 

p = Popen("batch.bat", cwd=r"C:\Path\to\batchfolder") 
stdout, stderr = p.communicate() 
+0

के साथ संगत है यदि यह काम नहीं करता है, तो खोल = सही जोड़ें, देखें: https : //stackoverflow.com/questions/9935151/popen-error-errno-2-no-such-file-or-directory –

3

यह वास्तव में एक लापता विशेषता यह है कि सामान्य रूप से बुनियादी रूप में विचार किया जाना चाहिए है कार्यक्षमता।दो विकल्प

  1. सबसे पहले मैं (खाली) अजगर विन्यास एक मानक बनाने की कोशिश की और "शुरूआत से पहले" इस्तेमाल किया जाता है -> बाहरी उपकरण विकल्प, इसलिए आप उपकरण सेटिंग्स के साथ एक नया बाहरी उपकरण परिभाषा बनाना चाहिए:

    • कार्यक्रम: cmd.exe
    • पैरामीटर:/सी अपने बैच-file.bat
    • कार्य निर्देशिका $ ProjectFileDir $ (मेरे मामले में $ ProjectPath $ खाली था)
    +०१२३५१६४१०६

    इस समाधान के बारे में कष्टप्रद बात यह है कि "बाहरी उपकरण" मानक आउटपुट को कंसोल लॉग विंडो में एक अतिरिक्त टैब पर रीडायरेक्ट किया जाता है जो तुरंत बाद में पृष्ठभूमि में जा रहा है जब डमी पायथन कॉन्फ़िगरेशन बाद में निष्पादित किया जाता है।

  2. आदेश को निष्पादित करने के लिए पाइथन का उपयोग करना दूसरा और बेहतर है। आम तौर पर मैं हमेशा उपप्रोसेसर मॉड्यूल का उपयोग करता हूं लेकिन इस मामले में os.system() अच्छा और न्यूनतम समाधान है। अजगर रन विन्यास तो यह
    • स्क्रिप्ट की तरह दिखता है: (खाली)
    • पैरामीटर: -c "आयात ओएस; os.system ('अपने बैच फ़ाइल')"
    • कार्य निर्देशिका: (चयन परियोजना निर्देशिका, दुर्भाग्य से कोई यहाँ मैक्रो)
+0

दूसरे दृष्टिकोण के बारे में टिप्पणी: "पैरामीटर्स" के बजाय मुझे उस पंक्ति को "इंटरप्रेटर विकल्प" में जोड़ना पड़ा "। अब मैं कोड चलाने में सक्षम था, लेकिन मैं इसमें टूटने में सक्षम नहीं था। अगर कोई ऐसा समाधान था जो आपको बैच फ़ाइल द्वारा बुलाए गए पायथन कोड को डीबग करने की अनुमति देता है तो मुझे खुशी होगी। – Cerno

संबंधित मुद्दे

 संबंधित मुद्दे