मैंने एक मॉड्यूल लिखा है (फ़ाइल my_mod.py
फ़ाइल my_module
फ़ोल्डर में रहने वाली फ़ाइल)। वर्तमान में, मैं cool_script.py
फ़ाइल में काम कर रहा हूं जो cur_proj
फ़ोल्डर में रहता है। मैंने फ़ाइल - ओपन (और मुझे लगता है कि, यह एक PyCharm प्रोजेक्ट है) का उपयोग कर PyCharm में फ़ोल्डर खोला है।PyCharm त्रुटि: अपने मॉड्यूल (पायथन स्क्रिप्ट) को आयात करने का प्रयास करते समय 'नो मॉड्यूल'
प्रोजेक्ट व्यू (सीएमडी -7) में, मैं अपनी परियोजना cur_proj
(लाल रंग में) और "बाहरी पुस्तकालयों" के अंतर्गत देख सकता हूं, मुझे my_module
दिखाई देता है। cool_script.py में, मैं
from my_module import my_mod as mm
लिख सकते हैं और PyCharm भी my_mod के लिए सुझाव बनाता है। अब तक सब ठीक है।
हालांकि, जब मैं cool_script.py चलाने का प्रयास, PyCharm मुझे "नहीं मॉड्यूल नामित my_module"
यह मेरे लिए अजीब लगता है, बताता है क्योंकि
टर्मिनल में ए) (ओएस 10.10.2), पायथन में, मैं मॉड्यूल को कोई समस्या नहीं आयात कर सकता हूं - PYTHONPATH में .bashrc
बी) PyCharm - सेटिंग्स - प्रोजेक्ट cur_proj - प्रोजेक्ट इंटरप्रेटर - पागथन i के बगल में CogWheel nterpreter - अधिक - चयनित दुभाषिया आइकन के लिए पथ दिखाएं, PYTHONPATH के पथ प्रकट होते हैं (जैसा कि मुझे लगता है कि उन्हें चाहिए)
इसलिए, जब मैं cool_script.py चलाने की कोशिश करता हूं तो मुझे त्रुटि क्यों मिलती है? - मुझे क्या याद आ रही है?
नोट्स:
- मैं मुझे यकीन है कि the path to
my_module
is correct - मैं
my_module
में put__init__.py
files (empty files) दोनों औरcur_proj
में - मैं
virtualenv
उपयोग नहीं कर रहा बनाया cool_script.py - के शीर्ष पर not declaring a different/special python version हूँ
परिशिष्ट 2015-Feb-25
जब मैं PyCharm चलाने के लिए में जाना - संपादित विन्यास, मेरे वर्तमान परियोजना के लिए, वहाँ दो विकल्प है कि एक जाँच चिह्न के साथ चुना जाता है कर रहे हैं: "PYTHONPATH करने के लिए सामग्री जड़ों जोड़ें" और "PYTHONPATH पर स्रोत जड़ जोड़ें"। जब मेरे पास अनचेक दोनों होते हैं, तो मैं अपना मॉड्यूल लोड कर सकता हूं।
तो यह अब काम करता है - लेकिन क्यों?
आगे के प्रश्न उभरा:
- "सामग्री जड़ों" क्या कर रहे हैं और "स्रोत जड़ों" क्या हैं? और PythonPATH में कुछ जोड़ने क्यों इसे किसी तरह तोड़ देता है?
- क्या मुझे उन दोनों विकल्पों को हर समय अनचेक करना चाहिए (इसलिए डिफ़ॉल्ट रूप से, न केवल प्रोजेक्ट विशिष्ट कॉन्फ़िगरेशन (रन/डीबग कॉन्फ़िगरेशन डायलॉग का बायां पैनल)?
आपने पहले से ही यह कोशिश की हो सकती है लेकिन अन्य पैकेजों से मॉड्यूल आयात करते समय, foldagen.mymodule आयात mymethod' से पैकेजगेम 'शामिल करें। एक और चीज जो मुझे करना है वह है कि आप अपने मॉड्यूल पर पहुंचने के लिए उपयोग किए जाने वाले सभी फ़ोल्डर्स में खाली __init_.py फ़ोल्डर जोड़ना चाहते हैं ताकि 'parentfolder.childfolder.mymodule से' ... के मामले में आपको init की आवश्यकता होगी दो फ़ोल्डर्स फ़ोल्डरों को एक-दूसरे के सापेक्ष स्थित कहां स्थित है, इस पर आपको [sys.path' में शीर्ष स्तर का पैकेज होना चाहिए जैसा कि इस [उत्तर] में वर्णित है (http://stackoverflow.com/questions/8951255/import-script- से-ए-पैरेंट-डायरेक्टरी) – ziddarth
मुझे आपकी समस्या भी थी। निम्नलिखित पोस्ट ने मेरे मुद्दों को हल किया: http://stackoverflow.com/questions/21236824/unresolved-reference-issue-in-pycharm – user3155053
क्या आप पहचानते हैं कि उन चेकबॉक्स को अनचेक करना वास्तव में उनको जांचने के विरोध में क्यों काम करता है? –