2010-10-23 17 views
11

मैं आईपीथॉन या पाइथन दुभाषिया चाहता हूं कि जब मैं उन्हें प्रारंभ करता हूं तो मॉड्यूल को स्वतः लोड करें।पायथन स्टार्टअप पर एक मॉड्यूल ऑटो-लोड

क्या यह संभव है?

उदाहरण के लिए जब मैं IPython शुरू:

$ ipython 

... 

>>> from __future__ import division 
>>> from mymodule import * 

In [1]: 

कुछ SymPy's live shell तरह ट्यूटोरियल पृष्ठों में पाया।

उत्तर

3

फ़ाइल ~/.ipython/ipythonrc फ़ाइल की जांच करें - आप स्टार्टअप पर लोड होने वाले सभी मॉड्यूल सूचीबद्ध कर सकते हैं।

+0

धन्यवाद! अब मैं इसे देखता हूं। – rubik

+8

ध्यान दें कि iPython ने तब से 'ipythonrc' को हटा दिया है। नई कॉन्फ़िगरेशन फ़ाइल में समान कार्यक्षमता (और बहुत कुछ) है, जैसा कि वर्णन किया गया है [उनके दस्तावेज़ में] (http://ipython.org/ipython-doc/dev/config/ipython.html#example)। –

+0

वह लिंक अब मर चुका है। एक संकल्प के लिए http://stackoverflow.com/questions/20835977/ देखें। –

13

अपनी होम निर्देशिका में .pythonstartup है और उस फ़ाइल में लोड मॉड्यूल और PYTHONSTARTUP env को उस फ़ाइल में इंगित करें।

इंटरमीक्टिव मोड में पहला प्रॉम्प्ट प्रदर्शित होने से पहले उस फ़ाइल में पायथन आदेश निष्पादित किए जाते हैं।

मैं

+1

भी आपको धन्यवाद! लेकिन अब मैं दो स्वीकृत उत्तर कैसे चुन सकता हूं ?? – rubik

+6

@ रुबिक: @ यूमिरो: यूमेरो ने पहले जवाब दिया और उसका जवाब अद्वितीय है और मेरा जवाब भी काम करता है। Eumiro के जवाब स्वीकार करें। – pyfunc

+0

ठीक है, फिर से धन्यवाद – rubik

4

जब तक -S विकल्प, python बाइनरी एक विशेष site मॉड्यूल क्रियान्वयन से पहले डिफ़ॉल्ट रूप से आयात किया जाता है करने के लिए पारित कर दिया है अजगर दुभाषिया खोल में कमांड लाइन पूरा होने के लिए सक्षम करने के लिए इसका इस्तेमाल करते हैं आपकी लिपि, या इंटरैक्टिव दुभाषिया को पारित किया जाता है। अन्य चीजों के अलावा मॉड्यूल *.pth फ़ाइलों को देखता है। प्रत्येक पंक्ति पर *.pth फ़ाइलों में sys.path, या निष्पादित करने के लिए आदेश शामिल करने के लिए पथ होना चाहिए। मॉड्यूल के साथ-साथ sitecustomize, और usercustomize (जिसमें मनमानी कोड हो सकता है, यदि आपके सहयोगियों को पागल बनाने के लिए एक अच्छा तरीका हो, तो वे त्रुटियों को उठाने के लिए एक अच्छा तरीका हो सकते हैं) यदि वे sys.path में कहीं मौजूद हैं।

समस्या यह है कि वर्तमान निर्देशिका sys.path में नहीं है जब site मॉड्यूल आयात किया जाता है, तो यह आपकी विशेष स्क्रिप्ट को कॉन्फ़िगर करना मुश्किल है।

मैं कभी कभी निम्न पंक्ति मेरी स्क्रिप्ट की शुरुआत में, इतना है कि स्क्रिप्ट शुरू होगा वर्तमान निर्देशिका में .pth फ़ाइलों के लिए searchin और sys.path को लापता पथ को जोड़ने के साथ जोड़ें:

# search for *.pth files in the current directory 
import site; site.addsitedir('')