2013-02-09 107 views
7

मैं एक Git रेपो है और यह क्लोन करने के लिए जेनकींस प्राप्त करना चाहते हैं तो चलानेमैं जेनकींस को "पीआईपी इंस्टॉल" कैसे चला सकता हूं?

virtualenv venv --distribute 
/bin/bash venv/source/activate 
pip install -r requirements.txt 
python tests.py 

जेनकींस से कंसोल आउटपुट है:

+ virtualenv venv --distribute 
New python executable in venv/bin/python 
Installing distribute..........................done. 
Installing pip...............done. 
+ /bin/bash venv/bin/activate 
+ pip install -r requirements.txt 
Downloading/unpacking flask (from -r requirements.txt (line 1)) 
    Running setup.py egg_info for package flask 

SNIP 

creating /usr/local/lib/python2.7/dist-packages/flask 

error: could not create '/usr/local/lib/python2.7/dist-packages/flask': Permission denied 

---------------------------------------- 
Command /usr/bin/python -c "import setuptools;__file__='/var/lib/jenkins/workspace/infatics-website/build/flask/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-hkdBAi-record/install-record.txt failed with error code 1 
Storing complete log in /home/jenkins/.pip/pip.log 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

मैं आदेश से पहले sudo जोड़ने की कोशिश की है, लेकिन यह या तो काम नहीं करता है:

+ sudo pip install -r requirements.txt 
sudo: no tty present and no askpass program specified 
Sorry, try again. 
sudo: no tty present and no askpass program specified 
Sorry, try again. 
sudo: no tty present and no askpass program specified 
Sorry, try again. 
sudo: 3 incorrect password attempts 
Build step 'Execute shell' marked build as failure 
Finished: FAILURE 

कोई विचार यह कैसे प्राप्त करें? साथ ही जब मैं टर्मिनल में जेनकिंस उपयोगकर्ता के रूप में पाइप इंस्टॉल -आर requirement.txt चलाता हूं तो उसे सूडो अनुमति की आवश्यकता नहीं होती है। क्या मैं जेनकींस (प्रक्रिया) जेनकींस उपयोगकर्ता के रूप में चलाने के लिए प्राप्त कर सकता हूं?

उत्तर

20

pip चलाने के लिए आपको sudo का उपयोग करने के लिए तथ्य यह है कि आपका वर्चुअल वातावरण काम नहीं कर रहा है। बिल्ड आउटपुट से पता चलता है कि pip आपकी सिस्टम साइट-पैकेज निर्देशिका में आवश्यकताओं को स्थापित कर रहा है, जो वर्चुअलएन्व काम नहीं करता है।

आपकी बिल्ड स्क्रिप्ट वास्तव में सक्रिय वर्चुअल वातावरण को संरक्षित नहीं करती है। सक्रिय स्क्रिप्ट द्वारा सेट किए गए पर्यावरण चर को बाल बैश प्रक्रिया में सेट किया गया है और बिल्ड स्क्रिप्ट तक प्रचारित नहीं किया गया है। आप के बजाय एक अलग खोल चलाने का स्रोत चाहिए activate स्क्रिप्ट:

virtualenv venv --distribute 
. venv/bin/activate 
pip install -r requirements.txt 
python tests.py 

आप एक निर्माण कदम के रूप में चला रहे हैं, कि काम करना चाहिए (और venv में अपने पैकेज इंस्टॉल)। यदि आप और कदम जोड़ना चाहते हैं, तो आपको अपने अन्य चरणों में पाथ पर्यावरण चर सेट करना होगा। यह सुनिश्चित करने के लिए कि आप सिस्टम पैकेज इंस्टॉलेशन पर निर्भर नहीं हैं, आप शायद pip और python पर पूर्ण पथ प्रदान करने से बेहतर हैं।

+2

मैं virtualenv के लिए एक छिपा निर्देशिका उपयोग करने की अनुशंसा, ताकि परीक्षण virtualenv अंदर उठाया नहीं कर रहे हैं: '' ' virtualenv .pythonenv स्रोत .pythonenv/bin/सक्रिय करें पिप -r requirements.txt अजगर परीक्षण स्थापित .py '' ' – vpipkt