2013-02-04 14 views
33

मैं मुसीबत को स्थापित करने से मुड़अजगर संकुल पिप

pip --version 

pip 1.1 from /home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)

एक आभासी वातावरण

[email protected] ~/GL/GLBackend $ sudo virtualenv -p python2.7 glenv 

Running virtualenv with interpreter /usr/bin/python2.7 New python executable in glenv/bin/python2.7 Also creating executable in glenv/bin/python Installing distribute.............................................................................................................................................................................................done. Installing pip...............done.

बनाएं शायद ज़रुरत पड़े हो रही है का उपयोग कर virtualenv में स्थापित करने के लिए नहीं , मैं ई करूंगा के रूप में स्थापित

(glenv)[email protected] ~/GL/GLBackend $ sudo pip install twisted 

Requirement already satisfied (use --upgrade to upgrade): twisted in /usr/local/lib/python2.7/dist-packages Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/dist-packages (from twisted) Requirement already satisfied (use --upgrade to upgrade): distribute in /usr/local/lib/python2.7/dist-packages (from zope.interface>=3.6.0->twisted) Cleaning up... (glenv)[email protected] ~/GL/GLBackend $ pip uninstall twisted Cannot uninstall requirement twisted, not installed Storing complete log in /home/chris/.pip/pip.log

nable सभी अनुमतियों

[email protected] ~/GL/GLBackend $ sudo chmod -R 777 glenv 

[email protected] ~/GL/GLBackend $ source glenv/bin/activate 


(glenv)[email protected] ~/GL/GLBackend $ pip freeze 

argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2

मुड़ यहाँ सूचीबद्ध नहीं है लेकिन जब मैं इसे स्थापित यह कहा गया है कि पहले से ही स्थापित। बाध्य करें स्थापित करें:

sudo pip install -I twisted 

Downloading/unpacking twisted Downloading Twisted-12.3.0.tar.bz2 (2.6Mb): 2.6Mb downloaded Running setup.py egg_info for package twisted . . .

Successfully installed twisted zope.interface distribute Cleaning up...

और फिर भी यह अभी भी स्थापित नहीं है

(glenv)[email protected] ~/GL/GLBackend $ pip freeze 

argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2

** जब मैं पाइथन स्क्रिप्ट जो मुड़ उपयोग चलाने की कोशिश करें, मैं एक त्रुटि कह रही है कि मुड़ता स्थापित नहीं है। यही कारण है:

ImportError: No module named twisted.python**

+0

आप 'वर्चुअल' के तहत 'पाइप इंस्टॉल' के साथ 'सूडो 'का उपयोग क्यों कर रहे हैं? मुझे यह सुनिश्चित करने के लिए पता नहीं है कि 'पीआईपी' सिस्टम को स्थापित करने का प्रयास करता है (यानी, जैसा कि आप देख रहे हैं, '/ usr/local/lib/python2.7' में अभी भी डालने के लिए, ~ ~ glenv 'जैसा कि आप चाहते हैं) जब आप' सूडो 'का उपयोग करते हैं, लेकिन यह कम से कम व्यवहार्य है। (आपको पहले स्थान पर अपना venv बनाने के लिए 'सुडो' का भी उपयोग नहीं करना चाहिए।) – abarnert

+0

@abarnert ने पहले ही आपको उत्तर दिया है, और आपको एक ही समस्या का सामना करना पड़ रहा है जैसे http://stackoverflow.com/q/14665330/565999 –

उत्तर

54

समस्या यहाँ है कि आप sudo उपयोग करते समय आपको नहीं होना चाहिए है। और ~/glenv/lib के बजाय /usr/local/lib में स्थापित करने का प्रयास करने के लिए pip का कारण बन रहा है। (और, क्योंकि आपने sudo का उपयोग किया है, यह सफलतापूर्वक ऐसा कर रहा है, लेकिन इससे आपकी मदद नहीं होती है, क्योंकि आप अपने venv में सिस्टम साइट-पैकेज की अनुमति नहीं दे रहे हैं।)

कई कारण हैं sudo pip इस व्यवहार का कारण बन सकता है , लेकिन सबसे अधिक संभावना यह है: अधिकांश प्रणालियों (विभिन्न मैक और आरएचईएल/सेंटोस बॉक्स सहित मुझे तुरंत पहुंच है), sudoers फ़ाइल आपके पर्यावरण को रीसेट कर देगी, फिर कुछ हद तक श्वेतसूची वाले वातावरण चर में जोड़ें। इसका अर्थ यह है कि जब आप sudo pip करते हैं, तो यह virtualenv सेट अप वातावरण वातावरण को नहीं देख पाएगा, इसलिए यह डिफ़ॉल्ट चीज़ करने के लिए वापस आ जाएगा और आपके सिस्टम के बजाय आपके सिस्टम पायथन में स्थापित होगा।

लेकिन वास्तव में, यह कोई बात नहीं क्यों यह हो रहा है। जवाब वही है: sudo pip install के बजाय बस pip install करें।

ध्यान दें कि आप भीvirtualenv फोन पर sudo दूर करने के लिए, के रूप में यह शायद venv कारण होगा चाहते हैं गलत तरीके से सेट किया जाना है (जो कारण है कि आप sudo chmod, जो अन्यथा आवश्यक नहीं होगा की जरूरत है)। आपके उपयोगकर्ता होम निर्देशिका के तहत चीजों को स्थापित करने का पूरा बिंदु यह है कि आप इसे अपने सामान्य उपयोगकर्ता अनुमतियों के साथ कर सकते हैं।

एक साइड नोट के रूप में, आप भी एक नए virtualenv/pip पर अपग्रेड करना चाहते हैं, क्योंकि 1.8 और 1.2 में कुछ बग फिक्स और सुधार हैं। लेकिन मैंने सत्यापित किया कि मुझे नवीनतम समस्या (1.8.4 और 1.2.1) संस्करणों के साथ भी वही समस्या मिलती है, इसलिए मुझे नहीं लगता कि यह यहां प्रासंगिक है।

+3

अगर मैं '' opt' फ़ोल्डर में अपना 'वर्चुअलएनवी' स्थापित करना चाहता हूं तो क्या होगा? मुझे 'अनुमति अस्वीकृत' त्रुटि प्राप्त हो रही है। –

+0

बहुत बहुत धन्यवाद :) –

+0

@Giri: आप सुडो का उपयोग करके एक उपनिर्देशिका बना सकते हैं, अपने उपयोगकर्ता या समूह की अनुमति दे सकते हैं, और उसके बाद सुडौ के बिना सभी वर्चुअलेंव सामान कर सकते हैं। यदि यह एक सामान्य उपयोगकर्ता के लिए है तो आप अपने घर के अंदर उपयोग करना पसंद कर सकते हैं। – Mark

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