मैं प्रत्येक छात्र के लिए अलग-अलग फ़ोल्डर्स में कुछ पायथन सबमिशन ग्रेड करने का प्रयास कर रहा हूं। ऐसा करने के लिए, एक फ़ंक्शन है, f() कहें जिसे मैं चलाने के लिए चाहता हूं। मैं समझता हूँ कि अगर मेरे वर्तमान पथ एक जहाँ फ़ाइल स्थित है के रूप में एक ही है, मैं बसउपफोल्डर्स से पाइथन आयात
import filename
filename.f()
कर सकते हैं हालांकि, वहाँ बेहतर तरीके हैं? उदाहरण के लिए, मान लीजिए कि निर्देशिका संरचना इस प्रकार है करते हैं:
main.py
student/run_this.py
मुझे पता है कि अगर वहाँ छात्र फ़ोल्डर में एक "__init__.py" फ़ाइल, मैं सिर्फ टाइप कर सकते हैं
import student.run_this
हालांकि, उस फाइल के बिना, यह काम नहीं करता है।
कुछ इसी तरह के सवाल मैंने पाया
- Import module from subfolder
- How to do relative imports in Python?
- http://www.daniweb.com/software-development/python/threads/192000/import-from-a-subdirectory-of-a-directory-on-pythonpath
लेकिन इनमें से कोई भी विशेष रूप से संतोषजनक जवाब दे दी थी।
तो '__init __। Py' फ़ाइल के साथ आपकी समस्या वास्तव में क्या है? – eazar001
आप अपने पथ में 'छात्र' फ़ोल्डर जोड़ते हैं, फिर' run_this' आयात करें। यही अन्य जवाब आपको करने के लिए कहते हैं, आपने क्या प्रयास किया जो काम नहीं करता? –
ऐसा नहीं है कि यह उतना काम नहीं करता जितना कि यह सुरुचिपूर्ण प्रतीत नहीं होता था। या कम से कम, \ __ init __ जोड़ना। Py मुझे बहुत ऑफपुटिंग लगता है - यह सबफ़ोल्डर तक पहुंचने के लिए फ़ाइल संरचना को संशोधित करने के लिए अनैतिक प्रतीत होता है। पथ बदलने के लिए, मैंने पढ़ा कि यह बुरा अभ्यास था, लेकिन यह एक उचित समाधान की तरह प्रतीत होता है। – vmkrish