तो मेरे पास यह अजगर चीज है जिसे फ़ाइल को संसाधित करने की आवश्यकता है।एक अजगर परियोजना की संरचना के लिए एक बहुत ही सरल * तरीका क्या है?
पहले यह था:
my_project/
├── script.py
और मैं बस python script.py file.csv
के साथ भाग जाता है।
तो यह बड़ा हुआ और बन गया:
my_project/
├── script.py
├── util/
│ └── string_util.py
├── services/
│ └── my_service.py
(हर निर्देशिका में एक खाली __init__.py
है)
लेकिन अबmy_service.py
string_util.py
उपयोग करना चाहते हैं और यह बहुत है यह अच्छी तरह से करने के लिए सीधा नहीं है।
मैं my_service.py
(जो from services import my_service
साथ script.py
में आयात किया जाता) में from ..util import string_util
करना चाहते हैं, लेकिन उस के बाद से my_service
के __name__
python script.py
साथ काम नहीं करता तो केवल services.my_service
है (और मैं मिल Attempted relative import beyond toplevel package
)
मैं क्या कर सकते हैं
cd ..
औरpython -m my_project.script
, लेकिन यह इतना अप्राकृतिक लगता है और इसे चलाने के निर्देशों के लिए इसे रीडमे में डालने में वाकई बुरा होगा।अभी मैं बदसूरत
sys.path.append()
हैक के साथ इसे हल कर रहा हूं।
मेरे पास अन्य विकल्प क्या हैं?
मैं इस पर अपना हिस्सा साझा कर सकता हूं, लेकिन इसे उत्तर के रूप में पोस्ट किया जाएगा। मुझे पता है कि आप क्या सोचते हैं। – idjaw