2010-11-02 6 views
5

मैं क्रॉन से एक पायथन लिपि चलाने की कोशिश कर रहा हूं, लेकिन यह ठीक से नहीं चल रहा है इसलिए मैं इसे अलग पथ env चर मान रहा हूं। क्या एक पाइथन लिपि के भीतर चर बदलने के लिए वैसे भी है?मैं पाइथन लिपि में सिस्टम पथ चर को कैसे संशोधित करूं?

+1

आपको अपने ऑपरेटिंग सिस्टम के विवरण प्रदान करना चाहिए। साथ ही, यह एक संभावित डुप्लिकेट की तरह दिखता है - मैं कड़ी मेहनत की सलाह देता हूं। –

+0

"ठीक से चलने" का क्या अर्थ है? क्या आप वाकई अपनी स्क्रिप्ट शुरू कर रहे हैं (यानी यह आपकी पाइथन बाइनरी बिल्कुल पा सकता है) –

+0

मैं पॉपन के उन कार्यक्रमों के साथ बहुत कुछ कर रहा हूं जिनके पास कोई रास्ता नहीं है। –

उत्तर

4

आपको पाइथन स्क्रिप्ट के भीतर से पैथ सेट करने की आवश्यकता नहीं है। इसके बजाय, अपने crontab के शीर्ष पर की तरह

USER=joe 
HOME=/home/joe 
SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/some/other/path 
PYTHONPATH=/home/joe/pybin 
MAILTO=joe 
LANG=en_US.UTF-8 

#min hr day mon dow 
*/5 12 *  * *  reminder.py 'Eat lunch' 

कुछ डाल दिया। ये पर्यावरण चर तब आपके क्रोंटैब के माध्यम से चलने वाली सभी क्रॉन नौकरियों के लिए उपलब्ध होंगे।

+0

नीचे क्रॉन नौकरियों के साथ शीर्ष पर दाएं? –

+0

@ जो: हाँ; नीचे क्रॉन जॉब लाइनों के साथ, शीर्ष पर दाएं। – unutbu

9

@ubuntu सही दृष्टिकोण है, लेकिन क्या इसके लायक है, @Joe Schmoe, अगर आप कभी भी जानकारी की आवश्यकता है:

import sys 
print sys.path 
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages',...] 
sys.path.append('/home/JoeBlow/python_scripts') 
print sys.path 
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages', '/home/JoeBlow/python_scripts',...] 

sys.path एक सरणी युक्त सब कुछ है कि अपने की शुरुआत स्क्रिप्ट के PYTHONPATH में किया गया है परिवर्तनीय (या जो भी आपके खोल का डिफ़ॉल्ट PythonPATH है)।

8

जबकि स्वीकृत उत्तर ओपी के उद्देश्यों के लिए काम करता है, और दूसरा जवाब पायथन sys.path चर अद्यतन करने के लिए सही है, तो मुझे लगता है कि यदि ओपी स्वीकार्य उत्तर का उपयोग करने में सक्षम नहीं था (क्योंकि, कहें, बिल्ड/टेस्ट मशीनों पर ओएस पाथ वैरिएबल को संशोधित करने के खिलाफ एक नीति थी), this SO answer जैसे कुछ वे जो खोज रहे हैं वह होगा। यहाँ सरल मामले को संक्षेप में ओएस पथ वातावरण चर को बदलने के लिए:

app_path = os.path.join(root_path, 'other', 'dir', 'to', 'app') 
os.environ["PATH"] += os.pathsep + app_path 

कम से कम, यह क्या मैं जब मैं सवाल पढ़ा खोजने के लिए उम्मीद कर रहा था।

+0

+1 यदि आप पाथ सेट करना चाहते हैं (और पायथनपैथ समान कोड है), हालांकि ध्यान दें कि sys.path और os.environ ['पथ'] अलग/अलग हो सकते हैं। – ntg

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