2013-08-20 18 views
8

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

शीर्ष फ़ोल्डर ---> फ़ोल्डर एक

शीर्ष फ़ोल्डर ---> फ़ोल्डर दो

समस्या यह है कि उप-फ़ोल्डर में प्रोग्राम का उपयोग है:

"नहीं मॉड्यूल शीर्ष नाम"

कैसे मैं इसे ठीक कर सकते हैं:

import top 
from top import module 

Pycharm त्रुटि देता है? सुनिश्चित करने के लिए

+1

क्या आपके शीर्ष फ़ोल्डर में '__init __। Py' फ़ाइल है? यदि ऐसा नहीं होता है, तो यह एक मॉड्यूल नहीं है। –

उत्तर

11

पहली बात क्या खेल कहा, आपको यह सुनिश्चित प्रत्येक फ़ोल्डर है कि एक पैकेज का प्रतिनिधित्व कर रहा है एक __init__.py फ़ाइल जो एक खाली अजगर बिल्कुल __init__.py नामक फ़ाइल कि दुभाषिया कि बताता है डाल द्वारा किया जाता है बनाने की जरूरत है ऐसा करने के लिए है फ़ोल्डर एक पायथन पैकेज है।

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

जोड़ने के लिए एक और चीज है, अपने रूट कोड का प्रतिनिधित्व करने वाले फ़ोल्डर पर राइट क्लिक करके और 'मार्क निर्देशिका के रूप में चिह्नित करें' '>' स्रोत रूट 'पर क्लिक करके अपने प्रोजेक्ट कोड की स्रोत रूट सेट करना है।

+0

मुझे मेरी परियोजना में लाल मार्करों का बहुत बचाया! –

+0

क्या परियोजना में सभी मॉड्यूल/उपफोल्डर में खोजने के लिए PyCharm को बताने का कोई तरीका है? हमारे पास एक बहुत लंबी निर्देशिका संरचना है, और मैन्युअल रूप से सभी स्रोतों को "स्रोत" के रूप में सेट करना वाकई मुश्किल है। – jimtut

+0

आपको सभी निर्देशिकाओं को स्रोतों के रूप में सेट करने की आवश्यकता नहीं है जिन्हें आपको रूट सेट करना है। यदि आपके पास कई जड़ें हैं तो आप अपनी परियोजना को गलत तरीके से व्यवस्थित कर सकते हैं। – BrokenRobot

1

मुझे एक ही समस्या का सामना करना पड़ा, लेकिन यह init inpy फ़ाइल की कमी के कारण नहीं है। कारण यह है कि परियोजना में दो समान नाम मॉड्यूल हैं, इसलिए PyCharm को आयात करने के बारे में नहीं पता है। अजीब बात यह है कि PyCharm केवल चल रहे समय पर इस त्रुटि की रिपोर्ट करता है।

मेरे परियोजना फ़ाइलें:

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- moduleA 
     |-- __init__.py 
     |-- B.py 

वास्तव में, स्रोत root1 मेरी कोड है, और स्रोत root2 अपने परीक्षण कोड है।

तो समाधान परीक्षण मॉड्यूल नाम बदलने के लिए है।

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- testmoduleA 
     |-- __init__.py 
     |-- B.py 
संबंधित मुद्दे