में __init.py__ नाम की फ़ाइल के साथ भी मुझे पता है कि इस प्रश्न को कई बार पूछा गया है और मैंने शायद अधिकांश उत्तरों को पढ़ा है (this और that सहित) साथ ही साथ पायथन दस्तावेज लेकिन अभी भी मेरी बहुत ही साधारण आयात समस्या का उत्तर नहीं मिल रहा है। यह इतना आसान है कि मुझे कुछ बेवकूफ याद आना चाहिए लेकिन मुझे अभी तक यह नहीं दिख रहा है। मैं सेटअप निम्नलिखित संरचना है:पाइथन उपनिर्देशिका से मॉड्यूल आयात नहीं कर सकता है, यहां तक कि
myproject
myscript.py
MyPackage
__init.py__
mymodule.py
मैं सिर्फ myscript.py
से mymodule.p
y (या कमांडलाइन अजगर दुभाषिया जो एक ही होना चाहिए) लोड करना चाहते हैं।
myscript.py
शामिल हैं:
#!/usr/bin/python
import MyPackage
__init.py__
शामिल हैं:
from . import mymodule
mymodule.py
शामिल
#!/usr/bin/python
def myfunction():
print "mymessage"
मेरा लक्ष्य myscript.py
से myfunction
कॉल करने के लिए है, लेकिन अगर मैं करने की कोशिश मॉड्यूल फोन मैं
$python myscript.py
Traceback (most recent call last):
File "myscript.py", line 2, in <module>
import MyPackage
ImportError: No module named MyPackage
क्या मैं पहले से ही करने की कोशिश की:
- मैं तहत OSX और उबंटू लिनक्स सब कुछ करने की कोशिश की एक दोषपूर्ण अजगर स्थापना की संभावना को कम करने के लिए।
- मैंने
PYTHONPATH
पर्यावरण चरmyproject
निर्देशिका के साथ-साथ.
और दोनों को सेट किया है। - मैं
__init.py__
खाली छोड़ दिया - मैं आयात बयान करने की कोशिश की भी अजगर दुभाषिया से
myproject
निर्देशिका मैं निम्नलिखित आयात बयान करने की कोशिश की से शुरू:
from MyPackage import mymodule import MyPackage.mymodule import MyPackage.mymodule as module
सभी सफलता के बिना (एक ही त्रुटि संदेश)।
अगर मैं एक पैकेज का उपयोग किए बिना परियोजना निर्देशिका में mymodule.py
शब्दों में कहें, आयात ठीक काम करता है। लेकिन मुझे नहीं पता कि सबपैकेज से आयात क्यों काम नहीं कर रहा है। कोई विचार है कि मैं इसे कैसे काम कर सकता हूं?
मदद के लिए धन्यवाद!
आपको यह सत्यापित करने की आवश्यकता है कि 'myproject' निर्देशिका' sys.path' में सूचीबद्ध है या नहीं। 'MyPackage' आयात करने से पहले, क्या sys.path' में सही निर्देशिका है? –
यदि मैं दुभाषिया शुरू करता हूं और 'आयात sys' और' print sys.path 'निष्पादित करता हूं तो यह एक सूची को "myproject" निर्देशिका का पथ सही ढंग से दिखाता है:' ['', '/ उपयोगकर्ता/माइकल/Entwicklung/पायथन/myproject ', ...] ' – mhelwig
सही, तो पैकेज आयात योग्य होना चाहिए। पैकेज * में * * अलग * आयात त्रुटि * हो सकती है। आपने कहा है कि आपने पहले ही खाली '__init __। Py' की कोशिश की है। क्या आप इसे फिर से कोशिश कर सकते हैं, लेकिन सुनिश्चित करें कि आप सभी '* .pyc' फ़ाइलों को हटा दें। शायद '__init __। Py' में एक 'प्रिंट' आयातित" 'पंक्ति जोड़ें। –