जब कोई स्रोत निर्देशिका में होने पर मॉड्यूल foo
आयात करने का प्रयास करता है, तो कोई एक भ्रमित ImportError
संदेश: ImportError: No module named foo
प्राप्त करता है।स्रोत निर्देशिका से आयात करते समय पाइथन 'आयात त्रुटि' पकड़ें
मैं आसानी से इस मामले को कैसे पकड़ सकता हूं और अधिक जानकारीपूर्ण संदेश लौटा सकता हूं, उदा। 'कृपया स्रोत निर्देशिका से मॉड्यूल foo लोड न करें'?
__init__.py
के बाद, मैं शुरू होगा साथ:
try:
from _foo import *
except ImportError:
## check whether in the source directory...
तो मैं (क्योंकि जैसे foo
नाम के एक मॉड्यूल सब पर स्थापित नहीं है) एक ImportError
लिए अलग अलग कारणों भेद, और मामले का पता लगाने के लिए करना चाहते हैं जिसमें setup.py
वर्तमान निर्देशिका में स्थित है। ऐसा करने का एक शानदार तरीका क्या होगा?
त्वरित उत्तर के लिए धन्यवाद। मैं यह जांचने का एक तरीका ढूंढ रहा हूं कि 'importError' को मौजूदा निर्देशिका में स्थित' setup.py' द्वारा उठाया गया है और इसे अन्य मामलों से अलग करता है या नहीं। – Julian
तो मैंने उल्लेख किए गए दूसरे विकल्प का उपयोग करें। आप जानते हैं कि आप किस पैकेज को आयात करने का प्रयास कर रहे हैं (अंतिम उपाय के रूप में, इसे 'ImportError' संदेश से निकालें) और आप वर्तमान निर्देशिका नाम प्राप्त कर सकते हैं। जिस स्थिति को आप ढूंढ रहे हैं वह पैकेज और निर्देशिका नाम से मेल खाता है, नहीं? – isedev