python - PyCharm वैध कोड के लिए अनसुलझे संदर्भ त्रुटि दिखाता है




(11)

आप अपने प्रोजेक्ट से .idea फ़ोल्डर को हटाकर, .idea को बंद करने का प्रयास कर सकते हैं, फिर फिर से पिचर्म शुरू कर सकते हैं और प्रोजेक्ट को दोबारा शुरू कर सकते हैं। यह मेरे लिए काम करता था जबकि कैश अवैध नहीं था।

मैं एक परियोजना पर काम करने के लिए PyCharm का उपयोग कर रहा हूँ। परियोजना को एक दुभाषिया के साथ खोला और कॉन्फ़िगर किया गया है, और सफलतापूर्वक चलाया जा सकता है। रिमोट दुभाषिया पथ ठीक से मैप किए जाते हैं। यह सही कॉन्फ़िगरेशन प्रतीत होता है, लेकिन PyCharm अंतर्निहित पायथन कार्यों के लिए भी "अनसुलझा संदर्भ" त्रुटियों के साथ मेरे मान्य कोड को हाइलाइट कर रहा है। ऐसा लगता है कि कोड क्यों नहीं चल रहा है, भले ही कोड चलता है? क्या PyCharm को इन्हें सही ढंग से पहचानने का कोई तरीका है?

समस्या का यह विशिष्ट उदाहरण दूरस्थ दुभाषिया के साथ है, लेकिन समस्या स्थानीय दुभाषियों पर भी दिखाई देती है।


इस चरण के बाद PyCharm 4.0.6 (OSX 10.10.3) के साथ परीक्षण किया गया:

  1. PyCharm मेनू पर क्लिक करें।
  2. परियोजना इंटरप्रेटर का चयन करें।
  3. गियर आइकन का चयन करें।
  4. अधिक बटन का चयन करें।
  5. आप जिस परियोजना इंटरप्रेटर में हैं, उसका चयन करें।
  6. निर्देशिका ट्री बटन का चयन करें।
  7. पथों की रीलोड सूची का चयन करें।

समस्या सुलझ गयी!


इसके लिए कई समाधान हैं, कुछ दूसरों की तुलना में अधिक सुविधाजनक हैं, और वे हमेशा काम नहीं करते हैं।

यहां आप कोशिश कर सकते हैं, 'त्वरित' से 'परेशान' तक जा रहे हैं:

  • File -> Invalidate Caches / Restart और PyCharm को पुनरारंभ करें।
    • आप सुनिश्चित करने के लिए, निम्न विधियों में से किसी एक के बाद भी ऐसा कर सकते हैं।
  • सबसे पहले, जांचें कि आप कौन सा दुभाषिया चल रहे हैं: Run -> Edit Configurations -> Configuration -> Python Interpreter
  • अपने दुभाषिया के पथ ताज़ा करें:
    • File -> Settings
    • Project: [name] -> Project Interpreter -> 'परियोजना इंटरप्रिटर': गियर आइकन -> More...
    • 'पथ दिखाएं' बटन पर क्लिक करें (नीचे एक)
    • 'ताज़ा करें' बटन पर क्लिक करें (नीचे एक)
  • दुभाषिया को हटाएं और इसे दोबारा जोड़ें:
    • File -> Settings
    • Project: [name] -> Project Interpreter -> 'परियोजना इंटरप्रिटर': गियर आइकन -> More...
    • 'निकालें' बटन पर क्लिक करें
    • 'जोड़ें' बटन पर क्लिक करें और अपना इंटरपेटर दोबारा जोड़ें
  • अपनी परियोजना वरीयताओं को हटाएं
    • अपने प्रोजेक्ट के .idea फ़ोल्डर को हटाएं
    • PyCharm बंद करें और फिर से खोलें
    • स्क्रैच से अपनी परियोजना खोलें
  • अपनी PyCharm उपयोगकर्ता वरीयताओं को हटाएं (लेकिन पहले उन्हें वापस लें)।
    • ~/.PyCharm50 मैक पर ~/.PyCharm50
    • विंडोज़ पर %homepath%/.PyCharm50
  • एक और दुभाषिया पर स्विच करें, फिर उस व्यक्ति को फिर से वापस करें जिसे आप चाहते हैं।
  • दूसरे दुभाषिया पर स्विच करें, वापस स्विच न करें।

उपर्युक्त समाधानों में से कोई भी मेरे लिए काम नहीं करता!
यदि आप अपने प्रोजेक्ट के लिए वर्चुअल वातावरण का उपयोग कर रहे हैं, तो सुनिश्चित करें कि प्रोजेक्ट के लिए दुभाषिया (Alt + Ctrl + Shift + S) रूप में आपके वर्चुअल पर्यावरण निर्देशिका के अंदर स्थित python.exe फ़ाइल को लागू करना सुनिश्चित करें, python.exe मेरे लिए समस्या हल की है।


गीज़ क्या एक दुःस्वप्न, विभिन्न उत्तरों का मेरा समामेलन:

  1. स्थानीय दुभाषिया /usr/bin/pythonX.X पर स्विच करें और लागू करें
  2. उपरोक्त उत्तर जैसे पथ देखें
  3. कंकाल पथ खोजें। मेरा था (/home/tim/Desktop/pycharm-community-2016.2.3/helpers/python-skeletons)
  4. वर्च दुभाषिया पर वापस स्विच करें और कंकाल पथ को मैन्युअल रूप से जोड़ें यदि यह स्वचालित रूप से दिखाई नहीं देता है।

जब मैं अमान्य कैश या रीफ्रेशिंग पथ काम नहीं करता हूं तो मुझे इस समस्या को ठीक करने के लिए रिमोट दुभाषिया को हटाने और फिर से जोड़ना पड़ता है।

मैं वानर का उपयोग करता हूं और हर बार थोड़ी देर और यदि मैं अपने बहु-वीएम सेटअप में एक नया वीएम जोड़ता हूं, तो अग्रेषित बंदरगाह बदलता है और यह एसएसएच के लिए गलत बंदरगाह का उपयोग करने की कोशिश करते समय PyCharm को भ्रमित करने लगता है। बंदरगाह को बदलना टूटी हुई संदर्भों की मदद नहीं करता है।


प्रस्तावित समाधानों में से कोई भी मेरे लिए काम करने के बाद मुझे अंततः यह काम मिल गया। मैं एक django आराम ढांचे परियोजना के साथ खेल रहा था और एक वर्चुअलenv का उपयोग कर रहा था जिसे मैंने इसके साथ स्थापित किया था। मैं रूट फ़ोल्डर को स्रोत रूट के रूप में चिह्नित करके पिचर्म को ठीक करने में सक्षम था, लेकिन फिर django का सर्वर अपवाद को हल करेगा। तो कोई काम करेगा जब दूसरा नहीं होगा और इसके विपरीत।

आखिरकार मुझे सबफ़ोल्डर को पिचर्म में रूट रूट के रूप में चिह्नित करना पड़ा। तो मेरी संरचना इस तरह थी

-playground
     -env
     -playground

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

बस सोचा कि अगर कोई और इसका इस्तेमाल कर सकता है तो मैं साझा करूंगा।


फाइल | अमान्य कैश ... और PyCharm पुनरारंभ करने में मदद करता है।


मेरे मामले में यह निर्देशिका संरचना थी। मेरी परियोजना इस तरह दिखती है:

+---dir_A
    +---dir_B
        +app
        |
        \-run.py

तो dir_b> "मार्क निर्देशिका के रूप में चिह्नित करें"> "प्रोजेक्ट रूट" पर राइट क्लिक करें।


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


यह एक पायथन संस्करण मुद्दा भी हो सकता है। मुझे इसे काम करने के लिए सही चुनना पड़ा।





pycharm