मैं अजगर के साथ प्रयोग कर रहा हूं, ज्यादातर अन्य लोगों के कोड की समस्या निवारण। मैं प्रोग्राम चलाने के लिए एक प्रोग्राम प्राप्त करने की कोशिश कर रहा हूं, "path\folderA\program.py
"। एक आयातकिसी अन्य फ़ोल्डर से विफल पाइथन आयात
ImportError: No module named fff.ggg.ppp
program.py शामिल:
मैं path\folderA
से कार्यक्रम चला रहा हूँ मैं एक त्रुटि हो रही है
from fff.ggg.ppp import mmm
फ़ोल्डर में "पथ \ folderB" वहां हैं: "path\folderB\fff\__init__.py
" "path\folderB\fff\ggg
"
फ़ोल्डर ggg
भी __init__.py
, साथ ही कार्यक्रम ppp.py
शामिल पढ़ने अन्य पदों से, Python error "ImportError: No module named" की तरह मैं समझता हूँ कि __init__.py
होने एक फ़ोल्डर एक "पैकेज" जो यह संभव से आयात करता है बनाता है - लेकिन यह 'नहीं करता है टी काम, क्योंकि मुझे एक त्रुटि मिल रही है।
यह उन अन्य लोगों के लिए काम कर रहा है जो इन परियोजनाओं के साथ काम करते हैं, इसलिए मेरे सेटअप में कुछ गड़बड़ है।
मैंने sys.path में होने वाली निर्देशिकाओं के बारे में कुछ पढ़ा है। क्या इसका मतलब है कि मुझे उन्हें पर्यावरण परिवर्तनीय पथ में जोड़ना है? इसका मतलब है कि पैथ में बहुत सारी निर्देशिकाएं जोड़ना, हालांकि यह नहीं हो सकता है।
तो मैंने यह भी पाया निम्नलिखित:
import sys
sys.path.append(<path to FolderB>)
लेकिन उस कोड (जो है अन्य लोगों के लिए आवश्यक नहीं किया गया है) और क्या यह मेरे स्थानीय मशीन पर है करने के लिए एक रास्ता हार्ड-कोड को बदलने का मतलब है - जो मुझे नहीं करना चाहिए, है ना?
मैं इसे कल्पना नहीं कर सकता - जाहिर है, मुझे कोड मॉड्यूल और हार्ड मॉड्यूल को आयात मॉड्यूल में भौतिक पथ नहीं बदलना चाहिए - तो फ़ोल्डर ए से प्रोग्राम को आयात के लिए फ़ोल्डर बी में कैसे देखना चाहिए?
__init__.py
का जादू कैसे काम करता है?
पायथन 'पायथनपथ' पर्यावरण चर में दिखता है, न कि 'पथ' – mgilson