12

मैं अपने पैकेज में पिछले घंटे के लिए आयात के साथ संघर्ष कर रहा हूं।पायथन रिश्तेदार-आयात स्क्रिप्ट दो स्तर ऊपर

मैं बहुत की तरह एक निर्देशिका संरचना मिल गया है:

main_package 
| 
| __init__.py 
| folder_1 
| | __init__.py 
| | folder_2 
| | | __init__.py 
| | | script_a.py 
| | | script_b.py 
| 
| folder_3 
| | __init__.py 
| | script_c.py 

मैं कोड script_b.py में script_a.py से script_c.py से कोड के साथ ही उपयोग करना चाहते। मैं यह कैसे कर सकता हूँ?

अगर मैं जब मैं

from main_package.folder_1.folder_2 import script_b 

चलाने मैं script_c.py तक पहुँचने के लिए एक

ImportError: no module named "script_b" 

के साथ मुलाकात कर रहा हूँ, मैं कोई सुराग नहीं है script_a.py अंदर एक सरल import script_b शब्दों में कहें,। मैं फ़ाइलों को दो स्तरों तक पहुँचने के बारे में कोई जानकारी नहीं मिल पाई थी, लेकिन मैं जानता हूँ कि मैं फ़ाइलों को मैं कैसे script_a.py से दोनों इन फ़ाइलों को एक्सेस कर सकते हैं एक स्तर ऊपर

from .. import some_module 

साथ आयात कर सकते हैं?

+0

संभावित डुप्लिकेट [पाइथन में इस सापेक्ष आयात को कैसे पूरा करें] (http://stackoverflow.com/questions/4655526/how-to-accomplish-this-relative-import-in-python) –

उत्तर

13

script_a से script_c और script_b पहुंचने के लिए, आप का प्रयोग करेंगे:

from ...folder_3 import script_c 
from . import script_b 

या यदि आप python3 उपयोग करते हैं, तो आप सिर्फ उपयोग करके script_a से script_b आयात कर सकते हैं:

import script_b 

लेकिन, आप चाहिए शायद पूर्ण आयात का उपयोग करें:

from mypackage.folder_3 import script_c 
from mypackage.folder1.folder2 import script_b 

यह भी देखें: Absolute vs Relative imports

+0

' script_b'? –

+0

उत्तर अद्यतन किया गया – tobspr

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