2012-07-09 17 views
5

कुछ प्रारंभिक स्क्रिप्ट init.py निष्पादित करने के बाद, मैं पाइथन में work.py को एक स्क्रिप्ट निष्पादित करना चाहता हूं।पायथन स्टार्टअप स्क्रिप्ट

यदि मैं एक इंटरैक्टिव सत्र की तलाश में था, तो python -i init.py निष्पादित करना या PYTHONSTARTUP=/path/to/init.py सेटिंग करना चाल होगा, लेकिन मैं एक और स्क्रिप्ट निष्पादित करना चाहता हूं।

इस के बाद से एक सामान्य मामला जो अक्सर (init.py सेट पर्यावरण और इतने समय के सभी एक ही है) होता है, मैं अत्यधिक work.py से init.py को संदर्भित नहीं पसंद करते हैं होता है। यह कैसे किया जा सकता है? यदि मुझे प्रॉम्प्ट के बजाय स्क्रिप्ट से इसकी आवश्यकता होती तो क्या कुछ बदल जाएगा?

बहुत बहुत धन्यवाद।

+0

'कार्य' 'init' पर निर्भर करता है? क्या आप सिर्फ 'पायथन-सी' आयात init कर सकते हैं; आयात कार्य '? - या शायद कम सुंदरता, 'पायथन-सी' execfile ("init.py"); execfile ("work.py") ' – mgilson

+0

' कार्य' को पहले से निष्पादित करने के लिए 'init' की आवश्यकता है। आप जो सुझाव दे रहे हैं वह काम कर सकता है (अब इसे आजमाएगा) लेकिन यह शायद ही आदर्श है - हर बार जब मैं पाइथन लिपि चलाता हूं तो मुझे ऐसा कुछ चाहिए। मैं इसे सामान्य तरीके से संदर्भित करने के लिए उपनाम या शेल कमांड बना सकता हूं, उदा। 'py work.py' जहां' py() 'परिभाषित शेल कमांड होगा, लेकिन इससे अन्य समस्याएं पैदा होंगी। यदि मैं एक है तो मैं हमेशा एक ही init स्क्रिप्ट को निष्पादित करने का एक साफ तरीका पसंद करूंगा ... – gt6989b

+0

तो, (बस स्पष्ट होना), आप वैश्विक रूप से एक स्क्रिप्ट ('init.py') को परिभाषित करना चाहते हैं पाइथन शुरू करते समय किसी और चीज से पहले जैसे कि आप 'बिल्ली init.py main.py | पाइथन 'पूरी तरह से कौन सी फ़ाइल' main.py' से स्वतंत्र है? – mgilson

उत्तर

5

आमतौर पर C0deH4cker के स्वीकृत उत्तर की तुलना में, इस पर पाइथन मैनुअल में Section 2.2.5 - Cusomization Modules में चर्चा की गई है। मूलभूत विचार है कि, विशेष स्टार्ट-अप स्क्रिप्ट का स्थान प्राप्त करने के लिए, किसी को निम्न पायथन कोड निष्पादित करने की आवश्यकता है, उदा। दुभाषिये की इंटरैक्टिव सत्र से:

>>> import site 
>>> site.getusersitepackages() 
'/home/user/.local/lib/python3.2/site-packages' 

उत्पादन बिल्कुल इस तरह के एक स्थान, फ़ाइल sitecustomize.py में होना चाहिए।

+0

यह स्वीकार्य उत्तर होना चाहिए, क्योंकि यह अधिक पोर्टेबल है। –

4

पायथन की एक विशेष स्क्रिप्ट है जो स्टार्टअप पर चलती है। मेरे प्लेटफ़ॉर्म पर यह /usr/lib/python2.5/site-packages/sitecustomize.py आईआईआरसी पर स्थित है। इसलिए, आप या तो उस निर्देशिका में init.py डाल सकते हैं जो साइट आयातित करता है जो साइट आयात करता है, या साइट customize.py में init.py की सामग्री पेस्ट करें।

+0

इसे काम नहीं कर सका - 'init.py' को'/path/में डालें/पायथन/साइट-पैकेज/साइट-custom.py.py' (निर्देशिका मौजूद थी, फ़ाइल नहीं थी) और पिछले स्थिति में कोई बदलाव नहीं दिखता है। – gt6989b

+1

ओह, इसकी साइटcustomize.py (हाइफ़न के बिना)। संपादन का जवाब – C0deH4cker

+0

धन्यवाद, यह जादू की तरह काम करता है। मेरी इच्छा है कि आप इसे हैकिंग के बिना कर सकते हैं। अभी के लिए, जब तक कि कुछ भी गुणात्मक रूप से बेहतर दिखाई न दे, मैं खुशी से आपका जवाब स्वीकार करूंगा। मेरी सहायता करने के लिए धन्यवाद। – gt6989b

संबंधित मुद्दे