1) सुनिश्चित करें कि आप subdir
में एक खाली __init__.py
फ़ाइल है।
2) एक पूर्ण पथ का उपयोग करें; कुछ इस तरह:
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), 'subdir'))
संपादित करें: एक टिप्पणी में पूछे जाने वाले प्रश्नों का उत्तर देने के बारे में अधिक जानकारी प्रदान करते हैं।
As Nick Johnson demonstrates आप fix_path.py
नामक एक फ़ाइल में कोड के उन तीन लाइनों रख सकते हैं। फिर, अपने main.py
फ़ाइल में, अन्य सभी आयातों से पहले यह import fix_path
करें। Link to a tested application using this technique।
और, हाँ, __init__.py
फ़ाइल की आवश्यकता है; प्रति documentation:
जब पैकेज का आयात, sys.path पर निर्देशिका के माध्यम से अजगर खोजें पैकेज उपनिर्देशिका की तलाश में।
__init__.py
फ़ाइलों को पर आवश्यक है पाइथन निर्देशिकाओं को पैकेजों के साथ व्यवहार करें; यह पर किया जाता है, नाम, जैसे स्ट्रिंग, से अनजाने में वैध मॉड्यूल जो मॉड्यूल खोज पथ पर बाद में होता है, से स्ट्रिंग जैसे निर्देशिका को रोकता है। सबसे सरल मामले में, __init__.py
केवल एक खाली फ़ाइल हो सकती है, लेकिन यह पैकेज के लिए प्रारंभिक कोड भी कार्यान्वित कर सकती है या बाद में वर्णित __all__
चर सेट कर सकती है।
$ 10 का कहना है कि आप एक गुमराह '.pyc' यदि त्रुटि" ही तय "फाइल किया था। –