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


279

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


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


मैं एक ही समस्या है और इसे बोला। यहाँ समाधान है
मैक्स

जवाबों:


445

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


3
यह मेरे मामले में PyCharm 4.0.x पर काम करने का एकमात्र तरीका है। तथ्य यह है कि अगर कुछ खराब हो गया है और यह ताज़ा नहीं होता है (कभी-कभी यह सूची में कई बार एक ही दुभाषिया भी दिखाता है) तो आपको फ़ाइलों को मैन्युअल रूप से हटाना होगा ... मुझे एक बार भी .idea फ़ोल्डर को हटाना होगा। ।
डेनियस

10
यह इतना भारी है। क्या PyCharm 4.5 में पुराने "ताज़ा पथ" विकल्प को वापस लाने का कोई तरीका नहीं है?
क्रिस विथर्स

6
यह वास्तव में कष्टप्रद है कि इस तरह की आईडीई इस तरह के एक सरल ऑपरेशन का ध्यान नहीं रखती है।
एडुआर्डो पिग्नाटेली

3
यह पल-पल काम करता है। कुछ मिनटों के बाद मुझे फिर से वही चेतावनी मिलती है
असेम

133

दिमित्री की प्रतिक्रिया ने मेरे लिए काम नहीं किया।

मुझे प्रोजेक्ट इंटरप्रेटर्स में जाकर, "पाथ्स" टैब का चयन करके, और उस सबमेनू में रिफ्रेश बटन को दबाकर मेरा काम करने लगा। यह "अजगर-कंकाल" नामक किसी चीज़ के साथ ऑटो-पॉपुलेटेड है।

संपादित करें : PyCharm 3.4.1 का उपयोग करके स्क्रीनशॉट (यह काफी अच्छी तरह से छिपा हुआ है)

यहां छवि विवरण दर्ज करें


6
जहां "पायथन इंटरप्रिटर्स" है। क्या आपका मतलब है "प्रोजेक्ट इंटरप्रिटर्स"? मैं लिनक्स का उपयोग कर रहा हूं और मुझे पाथ टैब भी नहीं मिल रहा है।
बसकाया

1
OSX पर PyCharm 3.4 में, यह एक आइकन है जो थोड़ा फ़ोल्डर ट्री जैसा दिखता है, और "पथ" नहीं कहता है।
डैनियल बुशमैन

12
किसी के लिए अभी भी उलझन में है (PyCharm 3.4.1 में):Settings > Project Settings > Project Interpreter > Project Interpreters (gear button > more) > --Select the interpreter-- > Interpreter Paths (Directory Tree button on the right) > Reload List of Paths (Blue refresh-like button)
रैपहेल्ट

5
PyCharm 4 में ऐसा कोई ताज़ा बटन नहीं है, केवल प्लस और माइनस संकेत हैं।
दिनोदोर

3
@ साराह PyCharm 4.0.4 में, "इंटरप्रेटर पाथ्स" विंडो में, मेरे पास "रास्तों की सूची पुनः लोड" बटन (नीचे नीला ताज़ा आइकन) नहीं है। इसके अलावा, मुझे सूची में कोई पथ दिखाई नहीं दे रहा है और प्लस और माइनस बटन अक्षम हैं।
हेनरिक हेमबर्गर

70

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

यहां आप सभी को आजमा सकते हैं, 'क्विक' से 'कष्टप्रद' तक:

  • क्या 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 मैक पर
    • %homepath%/.PyCharm50 विंडोज पर
  • दूसरे दुभाषिया पर स्विच करें, फिर वापस उसी पर जाएं जिसे आप चाहते हैं।
  • एक नया वर्चुअल वातावरण बनाएं, और उस वातावरण के दुभाषिया पर स्विच करें।
  • एक और दुभाषिया पर पूरी तरह से स्विच करें, वापस स्विच न करें।

जब तक मैं PyCharm का उपयोग कर रहा हूं, तब तक यह समस्या रही है और वे अभी भी इसे मज़बूती से ठीक नहीं कर सकते हैं। अच्छी बात यह है कि आपने ज्यादातर काम को एक ही तरह से कवर किया है या किसी अन्य समस्या को ठीक किया है। मजेदार है कि मैं समय-समय पर इस जवाब पर वापस आता हूं कि यह पता लगाने के लिए कि मैं किस काम के लिए कोशिश करना भूल गया।
एलेक्स

3
मैंने इस सूची में अपना काम किया और मेरे लिए काम करने वाले दुभाषिया को फिर से जोड़ना / हटाना। धन्यवाद!
मार्क

16

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

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

तो dir_b> "mark directory as"> "प्रोजेक्ट रूट" पर राइट क्लिक करें


2
सवाल यह नहीं था कि PyCharm प्रोजेक्ट कोड को मान्यता नहीं देता है । यह मानक पायथन अंतर्निहित तरीकों को नहीं पहचानता है।
फ्लोरिसला

MacOS पर PyCharm 2019/03/03 पर मेरी समस्या हल हो जाती
samisnotinsane

11

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

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


10

यदि आपके लिए अन्य समाधानों में से कोई भी काम नहीं करता है, तो कोशिश करें (बैकअप लें) और अपने ~ / .PyCharm40 फ़ोल्डर को हटा दें, फिर PyCharm को फिर से खोलना। यह आपकी सभी प्राथमिकताओं को भी मार देगा।

Mac पर आप ~ / Library / Caches / Pycharm40 और ~ / Library / Preferences / PyCharm40 को हटाना चाहते हैं।

और विंडोज पर: C: \ Users \ $ USER.PyCharm40।


10

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

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

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


9

बहुत आसान

आपको बस अपनी रूट डायरेक्टरी को चिन्हित करना होगा: SOURCE ROOT (लाल), और आपके अनुप्रयोग: EXCLUDED ROOT (नीला),

फिर अनसुलझे संदर्भ गायब हो जाएंगे।

  • यहां छवि विवरण दर्ज करेंयदि आप PyChram का उपयोग करते हैं, तो यह आपके लिए यह स्वचालित रूप से करता है।

5
मेरे पास pycharm है Pro और इसने मेरे लिए ऐसा नहीं किया, लेकिन मैंने मैन्युअल रूप से फ़ोल्डर्स को सही ढंग से चिह्नित करने के बाद इस पर काम किया
जोस

6

इस प्रश्न को टालने के लिए क्षमा करें, हालांकि मेरे पास बनाने के लिए एक महत्वपूर्ण अद्यतन है।

यदि आप किसी भी अन्य संस्करण का उपयोग कर रहे हैं, तो आप अपने प्रोजेक्ट इंटरप्रेटर को अजगर 2.7.6 पर वापस लाना चाह सकते हैं। इसने मेरे लिए PyCharm 4.04 पेशेवर की उबंटू स्थापना पर काम किया, जबकि अन्य सिफारिशों में से किसी ने भी मेरी समस्या का समाधान नहीं किया।


1
स्थानीय पायथन 2 दुभाषिया पर स्विच करना और फिर अपने दूरस्थ पायथन 3 दुभाषिया पर फिर से मेरे लिए भी यह तय किया।
जेम्स फ्लेचर

यह PyCharm 5 पेशेवर पर भी काम करता है। इस पोस्ट में किसी भी अन्य समाधान ने मेरे लिए काम नहीं किया है। मैं अंदर गया Settings -> "Project Interpreters", गियर क्लिक किया और फिर "More..."। डिफ़ॉल्ट अजगर इंटरप्रेटर ( /usr/bin/python2.7मेरे मामले में), हिट "Ok"और "Apply"। फिर में वापस गया और वास्तविक वर्चुअन को चुना जिसका मैं उपयोग करना चाहता था। "Ok"और "Apply"फिर, और यह तय हो गया है।
जोश

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

3

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


2

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

अंततः मुझे बस सबफ़ोल्डर को pycharm में जड़ के रूप में चिह्नित करना था। तो मेरा ढांचा कुछ ऐसा था

-playground
     -env
     -playground

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

मैंने सोचा था कि अगर कोई इसका उपयोग कर सकता है तो मैं साझा करूँगा।


2

यह एक अजगर संस्करण का मुद्दा भी हो सकता है। मुझे इसे काम करने के लिए सही चुनना था। यहां छवि विवरण दर्ज करें


2

यदि आप केवल कुछ "अनसुलझे संदर्भ" त्रुटियों को अनदेखा करना चाहते हैं, तो आप इसे PyCharm को अपनी कक्षा / पद्धति / फ़ंक्शन के सामने स्पष्ट रूप से बता सकते हैं:

# noinspection PyUnresolvedReferences

1

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


1

एक दुःस्वप्न देखिए, अलग-अलग स्टाकेवोरफ्लो उत्तर के मेरे समामेलन:

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

1

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


1

मेरे मामले में निरीक्षण त्रुटि अजगर कोड के एक बहुत विशिष्ट मामले के कारण दिखाई देती है। एक मिनि फंक्शन जिसमें दो संख्यात्मक कार्य होते हैं और दो लिस्ट एक्सेस मेरे कोड इंस्पेक्शन को इस तरह की त्रुटियां देते हैं।

निम्नलिखित उदाहरण में 'd = 0' लाइन को हटाने से उम्मीद के मुताबिक एक अनसुलझे संदर्भ त्रुटि मिलती है, लेकिन रीडिंग कोड निरीक्षक के लिए त्रुटि को दूर नहीं करती है। मैं अभी भी बाद में समस्याओं के बिना कोड निष्पादित कर सकता हूं।

import numpy as np
def strange(S, T, U, V):
    d = 0
    print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])

क्लीयरिंग कैश और पथों की सूची लोड करने से काम नहीं चलता है। केवल निम्न उदाहरण पैच में से एक के साथ कोड को बदलने से काम होता है:

  • 'न्यूनतम' मापदंडों का एक और आदेश: योजनाबद्ध रूप से SUTV लेकिन STUV या TSUV नहीं
  • फ़ंक्शन के बजाय एक विधि का उपयोग करना: S [d] .abs () np.abs (S [d]) के बजाय
  • अंतर्निहित एब्स () फ़ंक्शन का उपयोग करना
  • पसंद के पैरामीटर में एक संख्या जोड़ना: U [d] + 0।

1

किसी भी उत्तर ने मेरी समस्या हल नहीं की।

यह मेरे लिए क्या था वातावरण को बदल रहा था और उसी वातावरण में वापस जा रहा था। File->Settings->Project interpreter

मैं conda वातावरण का उपयोग कर रहा हूँ।


1

बहुत सरल कार्रवाई के साथ मेरे लिए काम किया :


File > Settings > Project > Project Interpreter 
> Select "No interpreter" in the "Project interpreter" list 
> Apply > Set your python interpreter again > Click Apply

लाभ - Pycharm कंकाल अद्यतन कर रहा है और सब कुछ ठीक है।


0

यदि आप vagrantत्रुटि का उपयोग कर रहे हैं तो गलत अजगर इंटरप्रेटर के कारण हो सकता है। हमारे में vagrantहम प्रयोग कर रहे हैं pyenvतो मैं बदलना पड़ा Python Interpreter pathसे पथ /usr/bin/pythonको/home/vagrant/.pyenv/versions/vagrant/bin/python यहां छवि विवरण दर्ज करें


0

मेरे पास एक परियोजना है जहां एक फ़ाइल src/उसी निर्देशिका में दूसरी फ़ाइल आयात करती है। PyCharm को पहचानने के लिए मुझे फ़ाइल> सेटिंग्स> प्रोजेक्ट> प्रोजेक्ट स्ट्रक्चर> चयन में जाना थाsrc फ़ोल्डर का और "मार्क : सोर्स" पर क्लिक करना होगा।

से https://www.jetbrains.com/help/pycharm/configuring-folders-within-a-content-root.html

स्रोत जड़ों में वास्तविक स्रोत फ़ाइलें और संसाधन होते हैं। PyCharm आयात को हल करने के लिए शुरुआती बिंदु के रूप में स्रोत की जड़ों का उपयोग करता है


0

मेरी समस्या यह है कि फ्लास्क-डब्ल्यूटीएफ का समाधान पाइक्रोम द्वारा नहीं किया गया है । मैंने पुनः स्थापित करने और फिर अमान्य कैश और पुनः आरंभ करने का प्रयास किया है अवैध रिस्टार्ट PyCharm को , लेकिन यह अभी भी काम नहीं कर रहा है।

फिर मैं इस समाधान के साथ आया और यह मेरे लिए पूरी तरह से काम करता है।

  1. Ctrl + Alt + S (Windows) द्वारा प्रोजेक्ट इंटरप्रेटर खोलें और फिर एक नया सामान स्थापित करें (+) पर क्लिक करें

यहां छवि विवरण दर्ज करें

  1. वह पैकेज टाइप करें जो Pyharm द्वारा हल नहीं किया गया है और फिर पैकेज स्थापित करें पर क्लिक करें । फिर ओके पर क्लिक करें ।

यहां छवि विवरण दर्ज करें

अब, आप देखेंगे कि आपकी लाइब्रेरी सुलझ गई है।


-1

क्या आप virtualenv का उपयोग कर रहे हैं?

यदि ऐसा है, तो आपको वांछित python.exe के स्थान में हर परिवर्तन के लिए PyCharm को सूचित करने की आवश्यकता है (केवल ।/activate PyCharm के लिए पर्याप्त नहीं है)

सुनिश्चित करें कि Pycharm सही इंटरपिटर और पैकेजों की ओर इशारा करता है: फ़ाइल -> सेटिंग्स -> प्रोजेक्ट -> प्रोजेक्ट इंटरप्रेटर। गियर पर क्लिक करें और virtualenv के स्क्रिप्स फ़ोल्डर के तहत python.exe चुनें

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.