2016-04-01 8 views
9

का उपयोग कर क्रॉन्टाब नौकरी चलाएं, मैं एक क्रॉन जॉब को पहले से मौजूद एनाकोंडा पायथन पर्यावरण का उपयोग करके एक पायथन स्क्रिप्ट निष्पादित करना चाहता हूं जिसे my_env कहा जाता है। एकमात्र चीज जो मैं सोच सकता हूं वह है क्रॉन जॉब my_script.bash नामक एक स्क्रिप्ट चलाती है जो बदले में env को सक्रिय करती है और फिर पाइथन स्क्रिप्ट चलाती है।एक एनाकोंडा env

#!/bin/bash 
source activate my_env 
python ~/my_project/main.py 

कमांड लाइन से इस स्क्रिप्ट निष्पादित करने के लिए काम नहीं करता है की कोशिश कर रहा:

$ sh scripts/my_script.bash 
scripts/my_script.bash: 9: scripts/my_script.bash: source: not found 

क्या मुझे यकीन है कि उचित माहौल सक्रिय होता है बनाने के लिए क्या करना होगा। मुझे यह समझाना ठीक है कि मैं 5 हूं।

उत्तर

3

sh पर कॉल न करें लेकिन bashsource एक बैश कमांड है।

- sh scripts/my_script.bash 
+ bash scripts/my_script.bash 

या बस

chmod +x scripts/my_script.bash 
./scripts/my_script.bash 

जब से तुम बैश कुटिया गयी।

10

मैंने हाल ही में से एनाकोंडा को क्रॉन नौकरियों में एक एनवी सक्रिय करने से दूर होने के लिए स्विच किया है। एनाकोंडा पाथ एनविर्नमेंट चर के आधार पर यह बहुत आसान बनाता है। (मैं का उपयोग कर रहा हूं, पूर्ण एनाकों इंस्टॉल नहीं है लेकिन मेरा मानना ​​है कि एनाकोंडा को वैसे ही काम करना चाहिए)

दो अलग-अलग दृष्टिकोण हैं, मैंने परीक्षण किया है;

  • अपने अजगर स्क्रिप्ट में एक कुटिया जोड़ें, main.py

    #!/home/users/user_name/miniconda2/envs/my_env/bin/python

  • PATH=/home/users/user_name/miniconda2/envs/my_env/bin

+0

मैं कार्यान्वित अपने crontab के शीर्ष करने के पथ जोड़े अपने उबंटू 16 में समाधान और सफलतापूर्वक एनाकोंडा को चलाने के लिए मिला। हालांकि, जब पाइथन पैकेज को चलाने के लिए PANDAS पैकेज आयात करने का प्रयास किया जाता है, तो मुझे एक [Errno 2] कोई ऐसी फ़ाइल या निर्देशिका नहीं मिलती है। किसी भी विचार के रूप में क्यों? मेरा बैश कमांड सेटअप बहुत सरल है। 'PATH =/home/dev/anaconda3/bin' ' पायथन/होम/dev/AUTOSIFT/script.sh' – Adestin

+0

वास्तव में अपने प्रश्न को समझें नहीं। script.sh एक पायथन लिपि नहीं है। क्या यह एक क्रॉन नौकरी है? शायद आपको पहले कोंडा स्थापित पांडा करने की ज़रूरत है। –

+1

एक शेल कमांड एक पायथन लिपि ट्रिगर करता है। हालांकि मुझे यह पता चला। समस्या यह थी कि .sh को चलाने पर एक पैथ चर सेट की आवश्यकता होती है। – Adestin

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