2017-12-20 75 views
9

में ऑटोमेशन ऑब्जेक्ट्स के लिए स्वत: पूर्ण मेरे पास विंडोज़ के लिए पाइथन एक्सटेंशन हैं।वीएस कोड और पायथन

PythonWin IDE with autocomplete

मैं वी.एस. संहिता में एक ही स्वत: पूर्ण कैसे प्राप्त कर सकते हैं: PythonWin आईडीई के भीतर मैं स्वचालन वस्तुओं (विशेष रूप से, win32com.client.Dispatch के साथ बनाई गई वस्तुओं) पर स्वत: पूर्ण मिल सकता है?

मैं Microsoft Python extension का उपयोग कर रहा हूं।

पायथन विंडोज एक्सटेंशन में COM Makepy नामक एक उपकरण है, जो स्पष्ट रूप से ऑटोमेशन ऑब्जेक्ट्स के पाइथन प्रस्तुतिकरण उत्पन्न करता है, लेकिन मैं इसका उपयोग कैसे नहीं कर सकता।

अद्यतन

जाहिर है, माइक्रोसॉफ्ट अजगर विस्तार स्वतः पूर्णता के लिए Jedi उपयोग करता है।

मैंने गिथब पर विस्तार परियोजना पर issue दायर किया है।

ध्यान दें कि आम तौर पर मेरे पास पाइथन में इंटेलिजेंस होता है; यह केवल ऑटोमेशन ऑब्जेक्ट्स पर इंटेलिजेंस है जिसे मैं याद कर रहा हूं।

+0

विभिन्न चीजों को देखते हुए विंडोज पायथन एक्सटेंशन, विजुअल स्टूडियो कोड। ऐसा लगता है कि अब तक संभव नहीं है। शायद जब वे टाइपशेड (* .pyi) एक्सटेंशन का समर्थन करना शुरू करते हैं तो इन चीजों को मैप करना आसान होगा –

उत्तर

3

मुझे नहीं लगता कि आप PythonWin के साथ दिखाए गए उदाहरण को आसानी से वीएस कोड में पुन: उत्पन्न कर सकते हैं। win32com की त्वरित प्रारंभ मार्गदर्शिका (नीचे उद्धृत) कहती है, यह केवल एक COM ब्राउज़र या उत्पाद के दस्तावेज (इस मामले में शब्द) के साथ संभव है। उत्तरार्द्ध एक असंभव है, इसलिए PythonWin शायद गुणों को खोजने के लिए एक COM ब्राउज़र का उपयोग कर रहा है। और क्योंकि PythonWin और win32com एक ही पैकेज में आते हैं, इसकी संभावना नहीं है कि ऐसा नहीं है कि PythonWin एक COM ब्राउज़र में निर्माण किया है।

मुझे कैसे पता चलेगा जो तरीकों और गुण उपलब्ध हैं?

अच्छा सवाल। यह कठिन है! आपको उत्पादों, या संभवतः एक COM ब्राउज़र के साथ दस्तावेज़ का उपयोग करने की आवश्यकता है। ध्यान दें कि COM ब्राउज़र आमतौर पर इन ऑब्जेक्ट्स पर भरोसा करते हैं जो स्वयं को तरीकों से पंजीकृत करते हैं, और कई ऑब्जेक्ट्स ऐसा नहीं करते हैं। आपको बस जाने की उम्मीद है।

आप VS Code plugin से ही कार्यक्षमता चाहते हैं तो एक COM ब्राउज़र Jedi (वी.एस. कोड प्लगइन का IntelliSense) में लागू किया जाना होगा।

संपादित करें: मैंने पाया this सुझाव है, पर कैसे एक स्वत: पूर्ण, कि इन छिपा हुआ गुण प्राप्त कर सकते हैं, किया जा सकता है:

इन रैपर विभिन्न चीजें हैं जो स्थिर विश्लेषण मुश्किल, जब तक करते हैं हम उन्हें विशेष मामले थे। ऐसे मामलों के लिए सामान्य समाधान ब्रेकपॉइंट पर चलना और लाइव रनटाइम स्थिति में काम करना है। ऑटो-पूर्णर को प्रतीकों की पूरी सूची शामिल करनी चाहिए क्योंकि यह रनटाइम का निरीक्षण करती है।

बातचीत पाइथन आईडीई wingwide की मेलिंग सूची से है। Here आप देख सकते हैं, कि वे ऊपर उल्लेख किया दृष्टिकोण को लागू किया:

Auto-Completer Icons

+0

मुझे खेद है, मुझे याद आया। मैंने आपका उदाहरण आजमाया है, और यह मेरे लिए ठीक काम करता है। क्या आपने केवल "ऐप। विज़िबल" की कोशिश की है या आपने पहले कोड ("ऐप = win32com.client.Dispatch ...") भी कोशिश की है? क्योंकि मेरे लिए, "ऐप। दृश्यमान" भाग को छोड़कर सबकुछ काम करता है। –

+0

"ऐप = win32com.client.Dispach ..." के लिए IntelliSense क्या काम करता है? –

+0

मैंने PyCharm में इसकी कोशिश की और यह 'ऐप' पर इंटेलिसेन्स नहीं कर सका। मुझे लगता है (अगर मैं गलत हूं तो मुझे सही करें) आपके उदाहरण में दिखाए गए इंटेलिसेन्स केवल काम करता है क्योंकि आपने पहले से ही संभावित पैरामीटर लिखे हैं, और इंटेलिसेन्स को याद किया गया है। अधिक जानकारी के लिए पिलांग के उत्तरों देखें। –

2

समीक्षा

मैं VSCode में अपनी समस्या की पुष्टि की है, हालांकि यह संभव IntelliSense ठीक काम करता है हो सकता है। नोट Ctrl + Space एक पूर्व निर्धारित चर के लिए सुझाव का आह्वान:

enter image description here

हालांकि, वहाँ सार्वजनिक win32com.client डिफ़ॉल्ट रूप से के लिए उपलब्ध विशेषताओं होने के लिए प्रकट नहीं होता। यही कारण है कि IntelliSense काम पर प्रकट नहीं होता है।

import win32com.client 


app = win32com.client.Dispatch("Word.Application") 
len(dir(app)) 
# 55 
[x for x in dir(app) if not x.startswith("_")] 
# [] 

छिपा विशेषताओं में से यह समस्या not a new है:

टेस्ट

अजगर 3.6 के लिए installed win32com के बाद, मैं Jupyter नोटबुक, IPython कंसोल और देशी अजगर आरईपीएल में निम्न कोड की पुष्टि की है। कृपया इस परीक्षण की पुष्टि किसी अन्य पर्यावरण/आईडीई में करें। यह आपका पर्यावरण या पाइथनवेन का विशेष संस्करण हो सकता है जो वैश्विक नामस्थान में कुछ चर को प्री-लोड करता है।

समस्या निवारण स्वतः पूर्ण मुद्दों के लिए संदर्भ

+0

विंडोज के लिए पायथन एक्सटेंशन 'मेकअप' टूल के साथ आता है, जो 'c: \ Program Files \ Python36 \ Lib \ site-packages \ win32com \ gen_py' में स्थिर परिभाषा उत्पन्न करता है। –

0

मैं आपकी समस्या Python interpreter को परिभाषित करने से संबंधित है लगता है।

f1 या ctrl+shift+p कुंजी दबाकर VS Code आदेश पैलेट में python interpreter कमांड को क्रियान्वित उचित अजगर दुभाषिया का चयन करें।

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