Friday, 15 July 2011

python - Import modules from parent folder with Flask -


मेरा फ़ोल्डर ट्री:

  project / app / __init__.py models.py dir / Test1.py dir / __ init__.py run.py dir / test2.py dir / __ init__.py  

अगर मैं ऐप से

  करना चाहता हूं जो कुछ भी काम करता है वह मैन्युअल रूप से  sys.path.append  से    और  test1  और  test2  आयात करता है < / कोड> कुछ ऐसा 

  os.path.join (os.path.dirname (__ फ़ाइल__), ".. .. .. ..")  

< मजबूत> हालांकि इतने सारे उत्तर हैं जो कह रहे हैं कि sys.path के साथ गड़बड़ कर रहा है मुझे लाइन में परेशान कर देगी (क्यों?); अफसोस की बात है, googling के 1 घंटे के बाद मैं अभी भी आयात सामान करने के लिए सही तरीके से नहीं लगा है और मुझे वास्तव में भ्रमित हो रहा है।

यह परीक्षण की तुलना में परीक्षण करने के लिए बेहद बेहतर है, इसलिए यदि आपको इसे काम करने के लिए sys.path में पथ जोड़ने की आवश्यकता है - और इस निर्देशिका विन्यास में, आप होगा - यह एक उचित और व्यावहारिक कदम है।

हालांकि, सामान्य तौर पर मैन्युअल रूप से लोड किए जाने वाले मॉड्यूल लोड पथ के साथ बेसा नहीं होना बेहतर होता है। यह मानता है कि आपका कोड हमेशा आपके परीक्षण फ़ोल्डर के बाहर एक निर्देशिका में लोड हो जाएगा, जो हमेशा सही नहीं हो सकता है लेकिन "आप लाइन में समस्याओं में चले जाएँगे" बहुत कमजोर चाय है।

बड़ा मुद्दा यह है कि आप उस छोटे से पथ-पैच का उपयोग स्वचालित परीक्षण और परीक्षण प्रबंधन को पूरा करने के लिए नहीं कर सकते जो आप अंत में करना चाहेंगे /जरुरत। बेहतर है कि वास्तविक परीक्षा के दोहन / टेस्ट धावक जैसे कि या प्रयोग करें। इससे भी बेहतर है कि आप मैक्रो टेस्ट रनर जैसे भी उपयोग करते हैं। संयोजन स्वचालित रूप से अपने सॉफ्टवेयर को स्थापित करेगा (किसी भी घोषित निर्भरता सहित) पूरी तरह से नया, प्राचीन यह आपको आपके मॉड्यूल की सामान्य संचालन की जांच न करने में मदद करेगा, बल्कि इसकी स्थापना योग्यता भी है। यह आपको पायथन के विभिन्न संस्करणों में आसानी से बहुत कम अतिरिक्त प्रयास के साथ परीक्षण चलाने में मदद करेगा। (मैं वर्तमान में 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, और PyPy के कई संस्करणों में परीक्षण करता हूं, उदाहरण के लिए नहीं - क्योंकि मैं उन सभी संस्करणों का उपयोग नहीं करता, बल्कि इसलिए कि मुझे इसके लिए अतिरिक्त कुछ भी लागत नहीं है यह सुनिश्चित करें कि मेरा सॉफ़्टवेयर पूरे पायथन ब्रह्मांड के एक बड़े तल पर चलता है।)

साफ चेतावनी: अपने परीक्षण पर्यावरण की स्थापना पहली बार एक गोली का एक सा है, एक उचित मात्रा में प्रयास और सीखने की आवश्यकता है "मैकेनिक" कौशल लेकिन यह एक बार का निवेश है जो आपके सारे पायथन काम पर लाभांश का भुगतान करेगा।

इतनी लंबी कहानी छोटी, पैचिंग sys.path प्रारंभ करने के लिए एक उचित स्थान है। लेकिन आपको अपने परीक्षण में अंततः अधिक सामान्यता, चौड़ाई, गहराई, परीक्षण जुड़नार और स्वचालन की आवश्यकता होगी - और पथ पैचिंग उन लोगों के साथ आपकी मदद नहीं कर सकता है वास्तविक परीक्षण टूल में अपग्रेड करना हो सकता है।


No comments:

Post a Comment