सबसे पहले: मुझे खेद है, मुझे पता है कि रिश्तेदार आयात के बारे में बहुत सारे प्रश्न हैं, लेकिन मुझे अभी कोई समाधान नहीं मिला। मैं निम्नलिखित निर्देशिका लेआउट का उपयोग करना चाहते हैं यदि संभव हो तो:रिश्तेदार आयात के लिए पायथन पैकेजिंग
myClass/
__init__.py
test/
demo.py
benchmark.py
specs.py
src/
__init__.py
myClass.py
अब मेरी प्रश्न हैं:
कैसे पैकेज के भीतर से परीक्षण फ़ाइलों को ठीक से myClass.py आयात करूँ?
क्या आप मेरा क्लास को libs/myClass में सबमिशन के रूप में लेते हैं या इसमें शामिल हैं/myClass को मानते हैं?
अब तक मुझे इसके लिए एक शानदार समाधान नहीं मिला। से मैं क्या Guido's Decision समझते हैं कि यह from ..src import myClass
करने के लिए संभव हो जाना चाहिए लेकिन इस त्रुटि देगा:
ValueError: Attempted relative import in non-package
कौन सा रूप में यह संकुल के रूप में myClass इलाज नहीं करता लग रहा है। Reading the docs:
The __init__.py files are required to make Python treat the directories as containing packages;
यह मैं कुछ निर्दिष्ट करता पैकेज की स्क्रिप्ट, कर रहे हैं मैं .pth का उपयोग करना चाहिए याद कर रहा हूँ लगता है?
@ ब्रेंट न्यू, हाँ, आप सही हैं, सापेक्ष आयात एक सतत विषय प्रतीत होता है और कुछ जवाब पढ़ने के बाद भी मुझे अपनी स्थिति का विशेष रूप से वर्णन करने का आग्रह महसूस हुआ। इस क्यू को दिखाने के बाद, #python आईआरसी चैनल पर कुछ लोगों ने फ्लैट निर्देशिका संरचना का उपयोग करने की सिफारिश की: "बहुत से लोग पाइथन अर्थपूर्ण नामस्थान जानकारी के लिए निर्देशिकाओं और फ़ाइलों का उपयोग करना चाहते हैं। यह सबसे अच्छा है और करना पाइथन क्या चाहता है। " http://jcalderone.livejournal.com/39794.html – eerne
कोई भी वास्तविक वास्तविकता पैकेज के साथ, या कुछ सम्मेलनों के बाद, कुछ वास्तविक दुनिया के पैकेजों के लिए एक लिंक प्रदान कर सकता है? (आदर्श रूप से github पर) – eerne
क्या 'test' निर्देशिका में '__init __। py' है? 'ValueError: गैर-पैकेज में सापेक्ष आयात का प्रयास करने से संबंधित हो सकता है। – jfs