virtualenv के बजाय वैश्विक साइट-संकुल में पाइप स्थापित करना


98

pip3किसी virtualenvकारण में पैकेज को स्थापित करने के लिए उपयोग करना virtualenv फ़ोल्डर में एक के बजाय वैश्विक साइट-संकुल फ़ोल्डर में स्थापित किया जाना है। यहाँ पर मैंने OS X Mavericks (10.9.1) पर Python3 और virtualenv की स्थापना की है:

मैंने होमब्रे का उपयोग करके पायथन 3 स्थापित किया:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl

में $PATHपरिवर्तनशील परिवर्तन .bash_profile; निम्नलिखित पंक्ति को जोड़ा:

export PATH=/usr/local/bin:$PATH

रनिंग which python3रिटर्न /usr/local/bin/python3(शेल को पुनः आरंभ करने के बाद)।

नोट: which python3अभी भी / usr/bin/pythonहालांकि रिटर्न ।

virtualenvका उपयोग कर स्थापित pip3:

pip3 install virtualenv

अगला, एक नया बनाएँ virtualenvऔर इसे सक्रिय करें:

virtualenv testpy3 -p python3
cd testpy3
source bin/activate

नोट: अगर मैं -p python3 निर्दिष्ट नहीं करता हूं, तो वर्चुअलाइव में बिन फ़ोल्डर से पाइप गायब हो जाएगा।

चल रहा है which pipऔर which pip3दोनों virtualenv फ़ोल्डर लौटाते हैं:

/Users/kristof/VirtualEnvs/testpy3/bin/pip3

अब, जब मैं सक्रिय virtualenv में पाइप का उपयोग करके उदाहरण के लिए Markdown को स्थापित करने का प्रयास करता हूं, तो पाइप virtualenv के साइट-संकुल फ़ोल्डर के बजाय वैश्विक साइट-संकुल फ़ोल्डर में स्थापित होगा।

pip install markdown

रनिंग pip listरिटर्न:

Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)

की सामग्री /Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages:

__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/

की सामग्री /usr/local/lib/python3.3/site-packages:

Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/

जैसा कि आप देख सकते हैं, वैश्विक साइट-संकुल फ़ोल्डर में मार्कडाउन शामिल है, virtualenv फ़ोल्डर नहीं है।

नोट: मेरे पास Python2 और Python3 पहले एक अलग VM पर स्थापित थे ( इनके बाद निर्देशों का पालन किया गया) और Python3 के साथ एक ही मुद्दा था; हालांकि Python2 आधारित virtualenv में संकुल स्थापित करना त्रुटिपूर्ण काम करता है।

किसी भी सुझाव, संकेत, ... बहुत सराहना की जाएगी।


अगर यह पहले से उपलब्ध है तो पाइप एक पैकेज स्थापित नहीं करता है। आपको इसके आउटपुट में "पहले से संतुष्ट संतुष्ट" देखना चाहिए। एक पैकेज स्थापित करने का प्रयास करें जो आपके पास अभी तक नहीं है। btw, pip3 गैर-काढ़ा python3 (आप कैसे स्थापित करते हैं) का उपयोग कर सकते हैंpip3 ?) का उपयोग कर सकते हैं। यह अपने आप से बुरा नहीं हो सकता है लेकिन आपको पता होना चाहिए कि यह क्या है।
jfs

1
मैंने पहले मार्कडाउन स्थापित नहीं किया था। वैश्विक पैकेज सूची खाली थी। इससे कोई फर्क नहीं पड़ता कि मैं किस पैकेज की कोशिश करता हूं, मैं हर बार इस व्यवहार को पुन: पेश कर सकता हूं।
ƬƠƑSƘɌỈ

पिप 3 के बारे में: यह होमब्रे द्वारा स्थापित किया गया था, साथ में पायथन 3।
ƬƠƑSƘɌỈ

मेरे लिए इसने भी मदद की: stackoverflow.com/questions/14695278/… दूसरों के लिए वित्त वर्ष के लिए बस
नागराज तंत्र

जवाबों:


90

अजीब बात है कि आप इसे लाए हैं, मुझे बस यही समस्या थी। मैंने इसे अंततः हल किया, लेकिन मैं अभी भी अनिश्चित हूं कि इसका क्या कारण है।

अपने जाँच की कोशिश करो bin/pip और bin/activateस्क्रिप्ट की । में bin/pip, शेबंग को देखो। क्या यह सही है? यदि नहीं, तो इसे सुधारें। फिर लाइन में ~ 42अपने में bin/activate, यह देखने के लिए जांचें कि क्या आपका वर्चस्व मार्ग सही है। यह कुछ इस तरह दिखेगा

VIRTUAL_ENV="/Users/me/path/to/virtual/environment"

यदि यह गलत है, यह सही है, deactivateहै, तो . bin/activateहै, और अगर हमारे आपसी समस्या एक ही कारण था, यह काम करना चाहिए। अगर यह अभी भी नहीं है, तो आप सही रास्ते पर हैं, वैसे भी। मैं एक ही समस्या को हल करने के लिए चला गया जैसा कि आपने किया था, which pipस्टैक ट्रेस का पालन करते हुए, आदि से अधिक , आईएनजी।

बिलकुल पक्का कर लो

/Users/kristof/VirtualEnvs/testpy3/bin/pip3

यह है कि आप क्या चाहते हैं, और इसी तरह की एक अन्य नामित परीक्षण परियोजना का जिक्र नहीं करते हैं (मुझे यह समस्या थी, और पता नहीं है कि यह कैसे शुरू हुआ। मेरा संदेह एक ही समय में कई virtualenvs चला रहा है)।

यदि इनमें से कोई भी काम नहीं करता है, तो एक अस्थायी समाधान हो सकता है, जैसा कि जो होलोवे ने कहा,

बस अपने पूर्ण पथ के साथ virtualenv के पाइप को चलाएं (यानी निष्पादन योग्य मार्ग को खोजने पर भरोसा न करें) और आपको पर्यावरण को सक्रिय करने की भी आवश्यकता नहीं है। यह सही काम करेगा।

शायद आदर्श नहीं, लेकिन इसे चुटकी में काम करना चाहिए।

मेरे मूल प्रश्न का लिंक:

VirtualEnv / Pip वैश्विक स्तर पर पैकेज स्थापित करने की कोशिश कर रहा है


1
धन्यवाद चेस। मैं आपका प्रश्न पोस्ट करने से पहले आया था, लेकिन ऐसा लगता है कि मैंने उस अंतिम पंक्ति को छोड़ दिया जिसमें शबंग का उल्लेख था। और वास्तव में, इसके #!/usr/local/bin/python3.3बजाय सेट किया गया था #!/Users/kristof/VirtualEnvs/testpy3/bin/python3.3। मैंने इसे बदल दिया, virtualenv को सक्रिय किया और Markdown पैकेज स्थापित किया। पिप अब वैश्विक एक के बजाय virtualenv साइट-संकुल फ़ोल्डर में स्थापित करता है।
ƘɌỈSƘɌỈ

मैं इस में भाग गया, जवाब के लिए बहुत बहुत धन्यवाद। मैंने गड़बड़ी करने वालों पर ध्यान दिया और फिर तुरंत बाद यह सवाल पाया, जिससे मेरे संदेह की पुष्टि हुई। क्या किसी को पता है कि शेबग गलत क्यों था? एक स्थाई फिक्स ढूंढना अच्छा होगा, इसलिए हमें हर बार जब हम एक नया आभासी वातावरण बनाते हैं, तो इसे जाँचने की ज़रूरत नहीं है।
विल

2
मुझे भी यही समस्या थी। मेरे activateस्क्रिप्ट ठीक था, लेकिन सावधान रहना , सबpip* स्क्रिप्ट और easy_install*लिपियों गलत मामला है। उन सभी को मैन्युअल रूप से तय किया जाना है। मैं उन्हें पाइप या ऐसा कुछ भी फिर से स्थापित करने के माध्यम से ठीक करने में असमर्थ था। इसके अलावा, जो होलोवे के समाधान के लिए एक स्पष्टीकरण: समस्या पाइप की खोज करने वाले शेल के साथ नहीं है, यह तथ्य है कि पाइप स्पष्ट रूप से गलत अजगर को निर्दिष्ट करता है । इसलिए आपको अपने आप को अजगर को निर्दिष्ट करने की आवश्यकता होगी, जैसे:$ ~/.virtualenvs/venv/bin/python ~/.virtualenvs/venv/bin/pip --version
नील ट्राफ

मैं --relocatableअपने env के बाद इस समस्या से मिला , और लाइन 42 गलत है, लगता है कि --relocatableयह सही काम नहीं किया।
शेल्बी

4
यह मेरे साथ तब हुआ जब मैंने एक मध्यवर्ती निर्देशिका का नाम बदला, इसलिए मुझे '/' बिन में सक्रिय और पाइप स्क्रिप्ट को संपादित करना पड़ा।
joarleymoraes

16

मेरे लिए यह कोई पाइप या virtualenv समस्या नहीं थी। यह अजगर की समस्या थी। मैंने कुछ ट्यूटोरियल ऑनलाइन के बाद अपना $ PYTHONPATH मैन्युअल रूप से ~ / .bash_profile (या ~ / .bashrc) में सेट किया था। यह मैन्युअल रूप से सेट $ PYTHONPATH virtualenv में उपलब्ध था क्योंकि इसे शायद अनुमति दी जानी चाहिए।

इसके अतिरिक्त add2virtualenvमैं virtualnv के भीतर किसी कारण से अपने $ PYTHONPATH के लिए अपना प्रोजेक्ट पथ नहीं जोड़ रहा था।

बस उन लोगों के लिए कुछ पथिक पथिक जो अभी भी अटक सकते हैं! चीयर्स!


11

मुझे भी यही समस्या थी, मैंने इसे vev निर्देशिका को हटाकर और इसे पुनः बनाकर हल किया!

deactivate (if venv is activated first deactivate it)
rm -rf venv
virtualenv -p python3 venv
. ENV/bin/activate
pip3 install -r requirements.txt

अब सब कुछ एक आकर्षण की तरह काम करता है।


मैं pip3virtualenv का उपयोग कर रहा था , डिफ़ॉल्ट रूप से, python2 का उपयोग किया इस प्रकार के pipबजाय का उपयोग कर pip3। मैंने binपाया कि कोई नहीं मिला pip3virtualenv -p python3 venvसमस्या के समाधान का उपयोग करना ।
सबटाइलेसर 15

इससे मेरी समस्या हल हो गई। Pycharm की स्वचालित virtualenv निर्माण ठीक से काम नहीं कर रहा था। मैनुअल इंस्टॉलेशन ने किया ट्रिक धन्यवाद।
लोडरन

5

मुझे यह समस्या भी हुई। मेरे Mavericks मैक पर मेरे पायथॉन 3.3 आभासी वातावरण के भीतर निर्देशिका pip install <package_name>से कॉल करने के /binकारण पायथन पैकेज को 2.7 वैश्विक साइट संकुल निर्देशिका में स्थापित किया गया। यह इस तथ्य के बावजूद था कि मेरी $ PATH की निर्देशिका युक्त के साथ शुरू हुई थी pip। अजीब। यह CentOS पर नहीं होता है। मेरे लिए, समाधान के pip3बजाय बुला रहा था pip। जब मैंने ez_setup के माध्यम से वर्चुअल वातावरण के भीतर पाइप स्थापित किया था , तो तीन "पाइप" निष्पादनयोग्य निर्देशिका में स्थापित किए गए थे - , जिससे पायथन पैकेज को स्थानीय साइट-पैकेज निर्देशिका में सही तरीके से स्थापित किया जा सके। कॉलिंग/binpippip3 , और pip3.3। उत्सुकतावश, तीनों फाइलें बिल्कुल एक जैसी थीं। कॉलिंगpip3 install <package_name>pipवर्चुअल वातावरण में पूर्ण पथनाम के साथ भी सही ढंग से काम किया। मुझे यह जानने में दिलचस्पी होगी कि मेरा मैक $ PATH का उपयोग क्यों नहीं कर रहा है जिस तरह से मैं इसकी उम्मीद करूंगा।


5

जाँच करने के लिए पहली बात यह है कि पाइप किस स्थान पर हल हो रहा है:

which pip

यदि आप एक virtualenv में हैं, तो आप यह अपेक्षा करेंगे कि आप कुछ ऐसा दें:

/path/to/virtualenv/.name_of_virtualenv/bin/pip

हालाँकि यह ऐसा हो सकता है कि यह किसी कारणवश आपके सिस्टम पाइप में हल हो रहा हो। उदाहरण के लिए आप इसे अपने virtualenv के भीतर से देख सकते हैं (यह खराब है):

/ usr / स्थानीय / बिन / पाइप (या कुछ भी जो आपके virtualenv पथ में नहीं है)।

इसको हल करने के लिए अपने पिपंकोफ़िग को चेक करें

~/.pipconf
~/.conf/pip
/etc/pip.conf

और सुनिश्चित करें कि ऐसा कुछ भी नहीं है जो आपके पाइथन पथ या आपके पिपेट पथ (यह मेरे लिए इसे तय करता है) के साथ जबरदस्ती कर रहा है।

फिर एक नया टर्मिनल शुरू करने का प्रयास करें और अपने virtualenv को फिर से बनाएँ (हटाएं और फिर इसे बनाएं)


2
यह भी देखें /etc/pip.conf! मेरे पास एक समान मुद्दा था और बहुत डिबगिंग के बाद किसी ने इस प्रणाली को गलत तरीके से समझा जिससे मैं इस फाइल के साथ गड़बड़ कर रहा था।
t.animal

मैं आर्च लिनक्स का उपयोग कर रहा हूं। मुझे लगता है कि /etc/pip.conf OS द्वारा सेट किया गया है।
Q. Qiao

धन्यवाद! आपने मेरा दिन बचाया! वे
विन्यास

2
मेरे पास एक टर्मिनल सत्र था जो उर्फ ​​को परिभाषित करता which pipथा , जो कुछ कारणों से, मुझे अभी भी सही रास्ता दे रहा था!
Matteo

4

मैं एक virtualenv के भीतर से एक अजगर पैकेज स्थापित करते समय एक ही मुद्दे में मारा। मेरे मामले में मूल कारण अलग था। वर्चुअन के भीतर से, मैं उबंटू की आदत से बाहर था, कर रहा था:

sudo easy_install -Z <package>

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


4

मैं एक ही समस्या पर ठोकर खाई मंजूरो। मैंने वर्चुअल वातावरण का उपयोग करके बनाया python3 -m ven venvऔर फिर सक्रिय उपयोग किया source venv/bin/actiavewhich pythonऔर which pipदोनों ने virtualenv में सही बायनेरीज़ की ओर इशारा किया, हालाँकि मैं बायनेरिज़ के पूर्ण पथ का उपयोग करते हुए भी वर्चुअनव में इंस्टॉल नहीं कर पा रहा था। यह पता चला कि जब मैंने अजगर-पाइप पैकेज की स्थापना रद्द की sudo pacman -R python-pip python-reportlabथी (निर्भरता को संतुष्ट करने के लिए रिपोर्टलैब को शामिल करना था) तो सब कुछ उम्मीद के मुताबिक काम करने लगा। निश्चित रूप से क्यों नहीं, लेकिन यह संभवत: एक दोहरी स्थापना के कारण है जहां सिस्टम पैकेज पूर्वता ले रहा है।


मुझे मंजरो पर भी यह समस्या थी, और उसी तरह इसे हल किया। हल करने के बाद मैंने python-pippamac के माध्यम से पुनः इंस्टॉल किया और virtualenv पाइप सही ढंग से काम करना जारी रखा। सुनिश्चित नहीं है कि वास्तव में क्या चल रहा है, लेकिन मैं आपके द्वारा दोहरे इंस्टाल इश्यू के आकलन से सहमत हूं।
सिड

3

मुझे अद्यतन करने के बाद इसी तरह की समस्या थी pip==8.0.0। खराब रास्ते का पता लगाने के लिए डिबगिंग पाइप का सहारा लेना पड़ा।

जैसा कि यह पता चला है कि मेरी प्रोफ़ाइल निर्देशिका में कुछ खाली पथ मानों के साथ डिस्टुटिल्स कॉन्फ़िगरेशन फ़ाइल थी। यह उपयुक्त वर्चुअल वातावरण (मेरे मामले में /lib/site-packages) के बजाय सभी पैकेजों को एक ही रूट निर्देशिका में स्थापित करने का कारण बन रहा था ।

मैं अनिश्चित हूं कि कॉन्फिग फाइल वहां कैसे पहुंची या इसके खाली मान कैसे थे लेकिन यह पाइप को अपडेट करने के बाद शुरू हुआ।

यदि कोई अन्य व्यक्ति इस समस्या पर ठोकर खाता है, तो बस फ़ाइल को हटाने ~/.pydistutils.cfg(या खाली कॉन्फ़िग पथ को हटाने) ने मेरे वातावरण में समस्या को ठीक कर दिया क्योंकि पाइप डिफ़ॉल्ट रूप से वितरित कॉन्फ़िगरेशन में वापस चला गया।


1
यह मेरा मुद्दा भी है। मेरी फाइल कुछ इस तरह [install]\nprefix=
दिखी

1
@foslock हां, यही मेरा भी लग रहा था। बुरी खबर है!
जोसिया रूडेल


3

मैं अजगर 2 और 3 स्थापित के साथ macos पर एक ही मुद्दा था।

इसके अलावा, मेरे पास python3 और pip3 को इंगित करने के लिए एलियंस थे .bash_profile

alias python=/usr/local/bin/python3
alias pip=/usr/local/bin/pip3

एलियासेस को हटाना और python3 -m venv venvनिश्चित मुद्दे का उपयोग करके वर्चुअल एनवी को फिर से बनाना ।


macos python की स्थापना अनावश्यक रूप से दर्दनाक imho है
iomv

मैं अपने बालों को बाहर खींच रहा था, और यही मेरे लिए अंत में तय की गई चीजें हैं: "कौन सी पाइप" समस्या का पता चला, "अनलियास पाइप" ने इसे ठीक कर दिया।
कॉलिन

1

आज उसी मुद्दे पर आया हूं। मैंने बस sudo easy_install pip(OSX / Max) के साथ विश्व स्तर पर पाइप को फिर से स्थापित किया , फिर से अपना virtualenv बनाया sudo virtualenv nameOfVEnv। फिर नए virtualenv को सक्रिय करने के बाद pipकमांड ने उम्मीद के मुताबिक काम किया।

मुझे नहीं लगता कि मैंने sudoपहले virtualenv निर्माण पर उपयोग किया था और हो सकता है कि pipvirtualenv के भीतर से एक्सेस न करने का कारण हो , मैं pip2इस फिक्स से पहले एक्सेस प्राप्त करने में सक्षम था, हालांकि यह अजीब था।


मुझे यह इसलिए मिला क्योंकि मैंने निर्देशिका को दूसरे रास्ते पर स्थानांतरित कर दिया और इसे virtualenvफिर से चलाने की आवश्यकता थी
सिटीरनमैन

1

यहां कुछ ऐसे अभ्यास हैं जो वर्चुअल वातावरण का उपयोग करते समय सिरदर्द से बच सकते हैं :

  • अपनी परियोजनाओं के लिए एक फ़ोल्डर बनाएँ।
  • अपना Virtualenv बनाएँइस फ़ोल्डर के अंदर प्रोजेक्ट ।
  • अपने प्रोजेक्ट के वातावरण को सक्रिय करने के बाद, कभी भी “ sudo pip install package का उपयोग न करें " का ।
  • अपना काम खत्म करने के बाद, हमेशा " निष्क्रिय करें " अपने पर्यावरण को " करें।
  • अपने प्रोजेक्ट फ़ोल्डर का नाम बदलने से बचें।


इस प्रथाओं के बेहतर प्रतिनिधित्व के लिए, यहां एक सिमुलेशन है:


अपनी परियोजनाओं / वातावरण के लिए एक फ़ोल्डर बनाना

$ mkdir venv

वातावरण बना रहा है

$ cd venv/ 

$ virtualenv google_drive
New python executable in google_drive/bin/python
Installing setuptools, pip...done.

सक्रिय वातावरण

$ source google_drive/bin/activate

पैकेज स्थापित करना

(google_drive) $ pip install PyDrive
Downloading/unpacking PyDrive
Downloading PyDrive-1.3.1-py2-none-any.whl
...
...
...    
Successfully installed PyDrive PyYAML google-api-python-client oauth2client six uritemplate httplib2 pyasn1 rsa pyasn1-modules
Cleaning up...

पर्यावरण के अंदर उपलब्ध पैकेज

(google_drive) $ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import pydrive.auth
>>>  
>>> gdrive = pydrive.auth.GoogleAuth()
>>>

पर्यावरण को निष्क्रिय करें

(google_drive) $ deactivate 

$ 

पैकेज पर्यावरण के बाहर उपलब्ध नहीं है

(google_drive) $ python
Python 2.7.6 (default, Oct 26 2016, 20:32:10) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import pydrive.auth
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pydrive.auth
>>> 

टिप्पणियाँ:

सूडो क्यों नहीं?

Virtualenv आपके लिए एक नया वातावरण बनाता है, $ PATH और कुछ अन्य चर और सेटिंग्स को परिभाषित करता है। जब आप sudo pip install पैकेज का उपयोग करते हैं, तो आप Virtualenv को रूट के रूप में चला रहे हैं , जो कि बनाए गए पूरे वातावरण से बच रहे हैं , और फिर, पैकेज को वैश्विक साइट-पैकेज पर इंस्टॉल कर रहे हैं, और प्रोजेक्ट फ़ोल्डर के अंदर नहीं जहां आपके पास वर्चुअल वातावरण है, हालांकि आप पर्यावरण को सक्रिय किया है।

यदि आप अपनी परियोजना के फ़ोल्डर का नाम बदलते हैं (जैसा कि स्वीकृत उत्तर में बताया गया है) ...

... आपको बिन के अंदर कुछ फ़ाइलों से कुछ चर समायोजित करने होंगे अपनी परियोजना निर्देशिका के ।

उदाहरण के लिए:

बिन / पाइप, पंक्ति 1 (वह बैंग)

बिन / सक्रिय, पंक्ति 42 (VIRTUAL_ENV)


1

मुझे यह समस्या थी। यह पता चला कि मेरे फ़ोल्डर नामों में से एक में एक जगह थी जो समस्या का कारण बनी। मैंने अंतरिक्ष को हटा दिया, हटा दिया और पुनर्नवा का उपयोग किया, और सब ठीक हो गया।


1

यह समस्या तब होती है जब कोई वर्चुअन इंस्टेंस बनाते हैं और फिर पैरेंट फ़ोल्डर का नाम बदलते हैं।


1

उपरोक्त किसी भी समाधान ने मेरे लिए काम नहीं किया।

मेरा वेनव सक्रिय था। pip -Vऔर which pipमुझे सही वर्चुअनव पथ दिया, लेकिन जब मैं pip installसक्रिय वेनव के साथ आई पैकेज, मेरा pip freezeखाली रहना।

सभी पर्यावरण चर भी सही थे।

अंत में, मैंने बस पाइप बदल दिया और virtualenv को हटा दिया:

easy_install pip==7.0.2

pip install pip==10

sudo pip uninstall virtualenv

पुन: स्थापित करें:

sudo pip install virtualenv

Venv बनाएँ:

python -m virtualenv venv_name_here

और सभी पैकेज सही तरीके से मेरे वेनव में फिर से स्थापित हो गए।


1

वर्चुअल वातावरण बनाने के बाद, अंदर स्थित पाइप का उपयोग करने का प्रयास करें VirtualEnvName \ Scripts

यह आपके वर्चुअल वातावरण में Lib \ site- पैकेज के अंदर एक पैकेज स्थापित करना चाहिए


0

मुझे यह समस्या भी हुई। कॉलिंग के sudo pip installकारण पाइथन पैकेजों को वैश्विक साइट-पैकेजों में स्थापित किया जा रहा है और कॉलिंग pip installने ठीक काम किया है। तो कोई virtualenv में sudo का उपयोग करें ।


या यदि आप sudo का उपयोग करते हैं, तो आपको वर्चुअल वातावरण को भी सक्रिय करना होगा। sudo suइसके बाद पीछा <venv>/bin/activateकिया गया pip install
डेव

0

एक ही समस्या। पायथन 3.5 और लिनक्स से पाइप 8.0.2 स्थापितrpm

मुझे प्राथमिक कारण नहीं मिला और मैं उचित उत्तर नहीं दे सकता। ऐसा लगता है कि कई संभावित कारण हैं।

हालाँकि, मुझे आशा है कि मैं अपने अवलोकन और वर्कअराउंड साझा करने में मदद कर सकता हूं।

  1. pyvenv साथ में --system-site-packages

    • ./binशामिल नहीं है pip, pipसिस्टम साइट संकुल से उपलब्ध है
    • पैकेज विश्व स्तर पर स्थापित हैं ( बग? )
  2. pyvenv के बिना --system-site-packages

    • pipमें स्थापित हो जाता है ./bin, लेकिन यह एक अलग संस्करण है (से ensurepip)
    • पैकेज आभासी वातावरण में स्थापित होते हैं ( ठीक है )

के लिए स्पष्ट वैकल्पिक हल pyvenvके साथ --system-site-packages:

  • इसे बिना --system-site-packagesविकल्प के बनाएं
  • बदलने include-system-site-packages = falseके लिए trueमें pyvenv.cfgफ़ाइल

0

यह भी जाँचने योग्य है कि आपने अपने virtualenv को किसी तरह से संशोधित नहीं किया।

उस मामले में पहली पंक्ति में bin/pip (और बाकी निष्पादनयोग्य) गलत रास्ता होगा।

आप या तो इन फ़ाइलों को संपादित कर सकते हैं और पथ को ठीक कर सकते हैं या फिर हटा सकते हैं और फिर से virtualenv स्थापित कर सकते हैं।


0

पायथन 3ers के लिए

अपडेट करने का प्रयास करें। मुझे भी यही समस्या थी और चेयस के जवाब की कोशिश की, हालांकि कोई सफलता नहीं मिली। इसे रिफैक्टर करने का सबसे तेज़ तरीका है कि यदि संभव हो तो अपने पायथन माइनर / पैच वर्जन को अपडेट करें। मैंने देखा कि मैं 3.5.1 चला रहा था और 3.5.2 पर अद्यतन किया गया। Pyvenv एक बार फिर काम करता है।


0

मेरे साथ यह तब हुआ जब मैंने गलत स्थान पर virtualenv बनाया। मैंने तब सोचा कि मैं बिना बात किए किसी और स्थान पर डायर को स्थानांतरित कर सकता हूं। यह मायने रखता है।

mkdir ~/projects
virtualenv myenv
cd myenv
git clone [my repository]

अरे बकवास, मैं projectsvirtualenv बनाने और प्रतिनिधि क्लोनिंग से पहले सीडी में भूल गया । ओह ठीक है, मैं भी नष्ट करने और बहलाने के लिए आलसी हूँ। मैं सिर्फ dir को बिना किसी समस्या के स्थानांतरित करूँगा।

cd ~
mv myenv projects
cd projects/myenv/myrepo
pip install -r requirements

नहीं, और अनुमतियाँ चाहिए, क्या? मुझे लगा कि यह अजीब था, लेकिन सूडो आवा! इसने संकुल को वैश्विक स्थान पर स्थापित किया।

मैंने जो सबक सीखा वह बस virtualenv dir को हटाना था। इसे स्थानांतरित मत करो।


0

डिवियो को स्थापित करने के बाद यह मुद्दा था: इसने मेरे पैट या पर्यावरण को किसी तरह से बदल दिया था, क्योंकि यह एक टर्मिनल लॉन्च करता है।

इस मामले में समाधान सिर्फ इतना करना था source ~/.bash_profileजो आपको अपने मूल pyenv / pyenv-virtualenv राज्य में वापस लाने के लिए पहले से ही सेटअप होना चाहिए।


0

यह मेरे साथ तब हुआ जब मैंने --python=python3.6झंडे के साथ वर्चस्व स्थापित किया लेकिन बाद में उपयोग करने की कोशिश की pip2 install
वर्जन के झंडे के साथ virtualenv बनाना जो कि आप हल की अनुमति समस्याओं का उपयोग करेंगे। इसकी जांच करने के लिए प्रयास करें which pipया which pip2या which pip3(अपनी पसंद पर निर्भर करता है)। यदि आप कोई भी pipरास्ता दिखाते हैं तो venvयहां आपकी समस्या नहीं है।


0

किसी तरह प्रोजेक्ट फ़ोल्डर में एक उपसर्ग = "" के साथ एक setup.cfg फ़ाइल

प्रोजेक्ट फ़ोल्डर के बाहर वर्चुअलाइव पर रनिंग पाइप इंस्टॉल किया गया ताकि अंदर से यह एक खाली उपसर्ग का उपयोग करने के लिए पाइप को बताए जो "/" के लिए चूक हो।

फ़ाइल को हटाकर इसे ठीक कर दिया


0

मुझे यह समस्या थी, और उपरोक्त सभी समाधानों की कोशिश करने के बाद मैंने बस सब कुछ हटा दिया और नए सिरे से शुरू किया।

मेरे अपने मामले में मैंने इस्तेमाल किया sudo उन फ़ोल्डरों में से एक बनाने में जिसमें आभासी वातावरण मौजूद था, और सूडो ने निजीकरण को जड़ से दिया

मुझे बहुत दर्द हुआ! लेकिन यह काम किया!


0

मुझे किसी कारण से अपने ubuntu प्रणाली पर पाइप के माध्यम से पैकेज स्थापित करने के लिए 'sudo' का उपयोग करना होगा। इससे संकुल वैश्विक साइट-संकुल में स्थापित हो रहा है। भविष्य में इस मुद्दे का सामना करने वाले किसी भी व्यक्ति के लिए इसे यहां रखा जा सकता है।


0

मुझे शीर्षक से बिल्कुल समस्या थी, और मैंने इसे हल किया। जब मैंने अपना पेट साफ किया तब पिप को वेव साइट-पैकेज में स्थापित करना शुरू कर दिया: यह शुरुआत में मेरे स्थानीय ~ / बिन निर्देशिका के लिए एक रास्ता था।

इसलिए, मेरी सलाह: "कचरा" या किसी भी गैर-मानक चीजों के लिए अपने पर्यावरण चर की अच्छी तरह से जांच करें। दुर्भाग्य से, virtualenv उन के प्रति संवेदनशील हो सकता है।

सौभाग्य!


0

लघु उत्तर को कमांड वर्चुअलाइज किया जाता है जिसमें पैरामीटर "-नो-साइट-पैकेज" होता है।

स्पष्टीकरण के साथ लंबा जवाब: -

इसलिए यहाँ और वहाँ दौड़ने के बाद, और बहुत सारे धागों से गुजरने के बाद मैंने अपने आप को समस्या के रूप में पाया। उपरोक्त जवाबों ने विचार दिया है, लेकिन मैं हर चीज पर फिर से जाना चाहूंगा।

  • समस्या यह है कि अगर आप जिस तरह से हम वर्चुअनव्यूवेट क्रेट कर चुके हैं, उसकी वजह से सिस्टम के वातावरण का जिक्र कर रहे हैं, तो आप इसे सक्रिय कर रहे हैं।

  • जब हम कमांड virtualenv env -p python3 चलाते हैं तो यह virtualenv इंस्टॉल कर देगा लेकिन यह no- global- साइट-package.txt नहीं बनाएगा।

  • उसके कारण जब आप स्रोत को सक्रिय करके वातावरण को सक्रिय करते हैं तो कमांड को इस साइट पर भेज दिया जाता है, जिसे site.py नाम दिया गया है (नाम अलग हो सकता है, मैं अभी भूल गया था) जो चलता है और जाँचता है कि क्या यह फ़ाइल मौजूद नहीं है तो यह आपके env पथ को sys.path में नहीं जोड़ेगा और सिस्टम अजगर का उपयोग करें।

  • इस समस्या को हल करने के लिए बस virtualenv को अतिरिक्त पैरामीटर के साथ चलाएं -कोई-साइट-पैकेज यह उस फ़ाइल को बनाएगा और जब आप पर्यावरण को सक्रिय करते हैं तो यह आपके PATH चर में आपके कस्टम वातावरण पथ को जोड़ देगा जो इसे सुलभ बनाता है।


0

ऊपर अच्छी चर्चा के बहुत सारे, लेकिन virtualenv उदाहरण इस्तेमाल किया गया। चूंकि 'conda' अब virtualenv को प्रबंधित करने के लिए अनुशंसित उपकरण है, इसलिए मैंने निम्नलिखित के रूप में conda enp में रनिंग पाइप में चरणों को संक्षेप में प्रस्तुत किया है।

मैं env के नाम के रूप में py36r का उपयोग करूँगा, और / opt / conda / envs, envs का उपसर्ग है):

$ source /opt/conda/etc/profile.d/conda.sh # skip if already done 
$ conda activate py36r
$ pip  install pkg_xyz
$ pip  list | grep pkg_xyz

ध्यान दें कि निष्पादित पाइप /opt/conda/envs/py36r/bin/pip(नहीं /opt/conda/bin/pip) में होना चाहिए ।

वैकल्पिक रूप से, आप केवल कोंडा सक्रिय किए बिना निम्नलिखित चला सकते हैं

$ /opt/conda/envs/py36r/bin/pip

इसके अलावा, यदि आप कोंडा का उपयोग कर स्थापित करते हैं, तो आप सक्रिय किए बिना स्थापित कर सकते हैं:

$ conda install -n py36r pkg_abc ...

0

खिड़कियाँ

मेरे लिए समाधान का उपयोग नहीं करना था mkvirtualenv, लेकिन:

python -m venv path/to/your/virtualenv

वर्कऑन सही ढंग से काम करता है।

virtualenv में जबकि: pip -Vvirtualenv के पाइप को दिखाता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.