उत्तर
सब होने वाली निर्देशिका अजगर संकुल कर रहे हैं, यानी वे सब __init__.py
होते हैं, तो आप उपयोग कर सकते हैं
from ..bar_dir import bar
निर्देशिका अजगर पैकेज नहीं हैं, तो आप sys.path
साथ चारों ओर खिलवाड़ करके ऐसा कर सकते, लेकिन आपको नहीं करना चाहिए।
इस करता है, तो आप एक गैर पैकेज में आयात करना चाहते हैं काम नहीं करेगा और आप बस एक भाई से एक अजगर चलाते हैं। इस मामले में sys.path.append – mhstnsc
@mhstnsc जाने का तरीका है, मैं इस मामले में कुछ गलत कर चुका हूं, लेकिन अगर यह कुछ हैकी स्क्रिप्ट है तो यह 'sys.path' के साथ गड़बड़ करना ठीक हो सकता है। –
यह गलत नहीं है लेकिन मुख्य मॉड्यूल चलाते समय आप सापेक्ष आयात नहीं कर सकते हैं। https://www.python.org/dev/peps/pep-0366/ – mhstnsc
आप सामान्यीकृत आयात के लिए sys
और os
मॉड्यूल का उपयोग कर सकते हैं। लाइनों के साथ foo.py
शुरुआत में
import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
देखें: https://stackoverflow.com/questions/6323860/sibling-package-imports/27878845#27878845 –