मुझे अपनी पायथन परियोजना की संरचना में कुछ समस्याएं हैं। वर्तमान में यह एक ही फ़ोल्डर में फ़ाइलों का एक गुच्छा है। मैं की तरहटेस्ट और पायथन पैकेज संरचना
proj/
__init__.py
foo.py
...
bar/
__init__.py
foobar.py
...
tests/
foo_test.py
foobar_test.py
...
समस्या यह है कि मैं नहीं पा रहा हूँ, भीतरी निर्देशिकाओं से है यह संरचना करने, बाहरी निर्देशिकाओं से मॉड्यूल आयात करने के लिए कोशिश की है। यह परीक्षणों के साथ विशेष रूप से परेशान है।
मैंने मुख्य मॉड्यूल से सापेक्ष आयात के बारे में सापेक्ष आयात और PEP 366 के बारे में PEP 328 पढ़ा है। लेकिन इन दोनों विधियों को आधार पैकेज को मेरे पायथनपैथ में होना आवश्यक है। दरअसल मैं निम्न त्रुटि प्राप्त
ValueError: Attempted relative import in non-package.
तो मैं परीक्षण फ़ाइलों
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
फिर भी मैं एक ही त्रुटि मिलती है की चोटी पर निम्नलिखित बॉयलरप्लेट कोड गयी। क्या करने के लिए
- संरचना एक पैकेज का सही तरीका, परीक्षण के साथ पूरा हो गया है, और
- पथ आयात की अनुमति देने के लिए आधार निर्देशिका जोड़ सकता हूँ?
संपादित के रूप में टिप्पणी में अनुरोध किया है, मैं
import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
from ..foo import Foo
क्या आप एक उदाहरण आयात दिखा सकते हैं जो विफल रहता है? –
इसके अलावा, कृपया अपने 'PythonPATH' –
' echo $ PYTHONPATH 'के लिए मूल्य अभी अभी खाली है। – Andrea