मेरे पास x.py नाम की एक अजगर फ़ाइल है जो y.py नाम की एक और फ़ाइल आयात करती है। y.py स्वयं आयात करता है z.py, y.py और z.py एक ही निर्देशिका में हैं लेकिन x.py मूल निर्देशिका में है। जब मैं y.py में सापेक्ष आयात का उपयोग करता हूं उदा। import .z y काम नहीं करता और x काम करता है। जब मैं आयात को import z में बदलता हूं तो y.py काम करता है लेकिन x.py काम नहीं करता

dic1  
    |__x.py
    |__dic2
         |__y.py
         |__z.py

x imports y
y imports z

क्या एक पायथन फ़ाइल आयात करने का कोई समाधान है जो विभिन्न निर्देशिकाओं में दूसरी फ़ाइल आयात करता है।

1
Hadi Developer 28 जिंदा 2020, 11:25

2 जवाब

सबसे बढ़िया उत्तर

आपकी प्रतिक्रियाओं के लिए धन्यवाद Blueteeth और Sofian। मेरे अधूरे प्रश्न के लिए क्षमा याचना और मुझे लगता है कि मैं सटीक बिंदु नहीं बता सका।

अंत में, मैंने इस्तेमाल किया
<कोड>आयात sys sys.path.insert(0, "dic2") y.py . में

0
Hadi Developer 28 जिंदा 2020, 15:25

पायथन में संकुल के मूल में एक __init__.py फ़ाइल होनी चाहिए। यहां मैं थोड़ा भ्रमित हूं कि पैकेज क्या है और रूट डायरेक्टरी क्या है।

मेरे पास ऐसा कुछ होगा:

<root_directory>
  |__ setup.py
  |__ <other top level files>
  |__ dic1/
    |__ __init__.py
    |__ x.py
    |__ dic2/
      |__ y.py
      |__ z.py

आपने इसे python के रूप में टैग किया है, इसलिए मुझे नहीं पता कि आप Python2 या Python3 का उपयोग कर रहे हैं या नहीं। यह देखते हुए कि पूर्व जीवन का अंत है, आपको वास्तव में Python3 का उपयोग करना चाहिए।

आप रूट से संबंधित चीजें आयात कर सकते हैं पैकेज, इस उदाहरण में, dic1

यदि आप python2 का उपयोग कर रहे हैं, तो आपको प्रत्येक फ़ाइल के शीर्ष पर from __future__ import absolute_import की आवश्यकता होगी।

x.py

from dic1.dic2 import y

y.py

from dic1.dic2 import z
1
blueteeth 28 जिंदा 2020, 11:36