बैश: mkvirtualenv: आदेश नहीं मिला


100

डग हेलमैन के virtualenvwrapperपद के निर्देशों का पालन करने के बाद , मैं अभी भी एक परीक्षण वातावरण को आग नहीं लगा सका।

[mpenning@tsunami ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[mpenning@tsunami ~]$

यह ध्यान दिया जाना चाहिए कि मैं उपयोग कर रहा हूं WORKON_HOMEजो मेरे में नहीं है $HOME। मैंने इंस्टॉलेशन डॉक्स/usr/local/bin/virtualenvwrapper.sh में दिखाया गया है , लेकिन यह मौजूद नहीं है।virtualenvwrapper

मैं CentOS 6 और अजगर 2.6.6 चला रहा हूं, अगर यह मायने रखता है।


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"

जवाबों:


107

समाधान 1 :

किसी कारण virtualenvwrapper.shसे /usr/bin/virtualenvwrapper.sh, के बजाय में स्थापित है /usr/local/bin

मेरे .bash_profileकामों में निम्नलिखित ...

source "/usr/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"

मेरी स्थापना सोर्सिंग के बिना ठीक काम करने लगती है virtualenvwrapper_bashrc

समाधान 2 :

जैसा कि नीचे उल्लेख किया गया है, आप वैकल्पिक रूप से उस मौके का लाभ उठा सकते हैं जो virtualenvwrapper.shपहले से ही आपके खोल में है PATHऔर अभी जारी हैsource `which virtualenvwrapper.sh`


5
स्थापना WORKON_HOME"~ / .virtualenvs" (करने के लिए डिफ़ॉल्ट मान ) निजी virtualenvs स्थापित करने के लिए अनुमति देता है
पियरे डी LESPINAY

1
यदि आप अपने डिस्ट्रो के पैकेज मैनेजर का उपयोग करके इंस्टॉल करते हैं, तो /usr/binइसके बजाय फाइलें होंगी /usr/local/bin। आम तौर पर, आपको एक या दूसरे को नहीं मिलनी चाहिए; यही कारण है कि हमारे पास एक PATHचर है।
ट्रिपल

यह उत्तर पाइप के साथ virtualenvwrapper को स्थापित करने पर आधारित था, जो कि मुझे करना पसंद है।
माइक पेनिंगटन

इसे पहले स्थापित करने की आवश्यकता है,pip install virtualenvwrapper
एडी

WORKON_HOMEवैकल्पिक है और इसका समाधान से कोई लेना-देना नहीं है।
scones

55

प्रयत्न:

source `which virtualenvwrapper.sh`

बैकटिक्स कमांड प्रतिस्थापन हैं - वे जो भी प्रोग्राम प्रिंट करते हैं उसे अभिव्यक्ति में डालते हैं। इस स्थिति में जो virtualenvwrapper.sh को खोजने के लिए "PATH" $ PATH की जाँच करता है और इसके लिए पथ आउटपुट करता है। स्क्रिप्ट को 'स्रोत' के माध्यम से शेल द्वारा पढ़ा जाता है।

यदि आप चाहते हैं कि हर बार जब आप अपने शेल को पुनः आरंभ करते हैं, तो संभवतः "जो" कमांड से आउटपुट को हथियाना बेहतर होगा, और फिर अपने शेल में "स्रोत" लाइन डालें, कुछ इस तरह से:

echo "source /path/to/virtualenvwrapper.sh" >> ~/.profile

^ यह आपके शेल के आधार पर थोड़ा भिन्न हो सकता है। इसके अलावा, एक भी> का उपयोग न करने के लिए सावधान रहें क्योंकि यह आपके ~ / .profile: -o को छोटा कर देगा


4
हालांकि यह समस्या को हल करने के लिए एक मूल्यवान संकेत हो सकता है, एक उत्तर को वास्तव में इससे थोड़ा अधिक विस्तार की आवश्यकता होती है। कृपया संपादित करें कि यह कैसे समस्या का समाधान होगा समझाने के लिए। वैकल्पिक रूप से, इसे टिप्पणी के बजाय लिखने पर विचार करें।
टोबी स्पाइट

1
इससे मेरी समस्या हल हो गई। लेकिन क्या कोई समझाएगा कि क्यों और कैसे?
hrr53

1
बैकटिक्स कमांड प्रतिस्थापन हैं - वे जो भी प्रोग्राम प्रिंट करते हैं उसे अभिव्यक्ति में डालते हैं। इस मामले में "जो" virtualnwwrapper.sh को खोजने के लिए $ PATH की जाँच करता है और इसके लिए पथ आउटपुट करता है। स्क्रिप्ट को 'स्रोत' के माध्यम से शेल द्वारा पढ़ा जाता है।
एरिक

43

मेरे पास ओएस एक्स 10.9.1 पर अजगर 2.7.5 के साथ एक ही मुद्दा था। साथ कोई समस्या नहीं WORKON_HOMEमेरे लिए, लेकिन मैं मैन्युअल रूप से जोड़ने के लिए किया था source "/usr/local/bin/virtualenvwrapper.sh"के लिए ~/.bash_profile(या ~/.bashrcमैं भाग गया के बाद यूनिक्स में)pip install virtualenvwrapper


1
आपने मैन्युअल रूप से "/usr/local/bin/virtualenvwrapper.sh" स्रोत कहां जोड़ा है?
ग्रेगोलॉजी

1
@Gregology मैंने उस लाइन को जोड़ा ~/.bash_profile। ध्यान दें कि जब आप पहली बार इसे जोड़ते हैं तो आपको टर्मिनल को फिर से लोड करना होगा (जो चलता है .bash_profile) या बस sourceकमांड लाइन से सीधे उस कमांड को चलाएं ।
निक बेन्स

1
यह बहुत उपयोगी होगा यदि आपके पास फ़ाइलनाम के साथ एक शीर्षक था और सभी सामग्रियों को प्रदर्शित किया गया था, ताकि आपको "आपने इसे कहाँ रखा है?"
जल्लादार्दो

1
चाहे आप उपयोग करें .bash_profileया .bashrcवास्तव में सीधे परिणाम नहीं हैं कि आप किस प्लेटफ़ॉर्म पर हैं, हालांकि कुछ प्लेटफार्मों पर एक या दूसरा गायब हो सकता है। उनके अंतर के लिए बैश मैनुअल पेज देखें। आम तौर पर, आपको केवल अपने में ही इसकी आवश्यकता होनी चाहिए .bash_profile, लेकिन कुछ डिस्ट्रो सेटअप का उपयोग करते हैं जो मामलों को जटिल करते हैं।
ट्रिपल जूल

25

इस आदेश को निष्पादित करने के लिए आवश्यक शर्तें -

  1. पाइप ( पी आईपी I nstalls P ackages के पुनरावर्ती संक्षिप्त ) एक पैकेज प्रबंधन प्रणाली है जिसे पायथन में लिखे गए सॉफ्टवेयर पैकेजों को स्थापित और प्रबंधित करने के लिए उपयोग किया जाता है। पायथन पैकेज इंडेक्स (PyPI) में कई पैकेज मिल सकते हैं।

    sudo apt-get install अजगर-पाइप

  2. वर्चुअल वातावरण स्थापित करें। वर्चुअल वातावरण बनाने के लिए, एक-दूसरे से अलग-थलग पैकेजों और निर्भरताओं को स्थापित करने के लिए उपयोग किया जाता है।

    sudo pip इंस्टॉल करें virtualenv

  3. वर्चुअल एन्‍वायर रैपर के बारे में वर्चुअल एन्‍वायर रैपर इंस्‍टॉल करें

    sudo pip इंस्टॉल करें virtualenvwrapper

पूर्वापेक्षाएँ स्थापित करने के बाद आपको वर्चुअल वातावरण बनाने के लिए वर्चुअल वातावरण आवरण को क्रिया में लाने की आवश्यकता होती है। निम्नलिखित चरण हैं -

  1. पथ चर में आभासी पर्यावरण निर्देशिका सेट करें- export WORKON_HOME=(directory you need to save envs)

  2. source /usr/local/bin/virtualenvwrapper.sh -p $WORKON_HOME

जैसा कि @Mike, source ने बताया है कि virtualenvwrapper.sh` या virtualenvwrapper .sh which virtualenvwrapper.shफ़ाइल का पता लगाने के लिए उपयोग किया जा सकता है।

हर बार जब आप नया खोल खोलते हैं तो उपरोक्त आदेशों को निष्पादित करने से बचने के लिए ~ / .bashrc में दो लाइनों के ऊपर रखना सबसे अच्छा है। आपको केवल mkvirtualenv का उपयोग करके वातावरण बनाने की आवश्यकता है

ध्यान रखने के लिए अंक -

  • उबंटू के तहत, आपको रूट के रूप में virtualenv और virtualenvwrapper स्थापित करने की आवश्यकता हो सकती है। बस sudo के साथ ऊपर दिए गए कमांड को उपसर्ग करें।
  • Virtualenv को स्थापित करने के लिए उपयोग की जाने वाली प्रक्रिया के आधार पर, virtualenvwrapper.sh का पथ भिन्न हो सकता है। $ खोज / usr -name virtualenvwrapper.sh चलाकर उपयुक्त रास्ता खोजें। तदनुसार अपने .bash_profile या .bashrc स्क्रिप्ट में लाइन समायोजित करें।

1
एक नोट जोड़ना। Ubuntu 18.04 पर, मुझे इंस्टॉल करने के बाद रिबूट करना पड़ा और फिर इसने काम किया।
दान ग्रहन

@screenmutt मूल्यवान इनपुट के लिए धन्यवाद। मैं इसे याद कर सकते हैं क्योंकि मैं ubuntu 16.04 का उपयोग करता हूं। हालाँकि, मैं जानना चाहूंगा कि आपको किस कदम के बाद रिबूट करना पड़ा? क्या पाइप पैकेज स्थापित करने के बाद या "आभासी पर्यावरण निर्देशिका" स्थापित करने के बाद है?
केशव

आवरण की स्थापना के बाद। इसके बाद काम किया।
दान ग्राहण

1
@DanGrahn को आपको रिबूट करने की आवश्यकता नहीं है, बस फिर से चलाने की जरूरत है .bashrc- या तो source ~/.bashrcअपने वर्तमान टर्मिनल में स्पष्ट रूप से, या एक नया टर्मिनल विंडो खोलें
TJ Ellis

10

Ubuntu में वर्चुअल एनवी बनाने के लिए इस प्रक्रिया का उपयोग करें

चरण 1

पाइप स्थापित करें

   sudo apt-get install python-pip

चरण 2

Virtualenv स्थापित करें

   sudo pip install virtualenv

चरण 3

अपने virtualenvs को स्टोर करने के लिए एक निर्देशिका बनाएं (मैं ~ / .virtualenvs का उपयोग करता हूं)

   mkdir ~/.virtualenvs

या env में अजगर के विशिष्ट संस्करण को स्थापित करने के लिए इस कमांड का उपयोग करें

virtualenv -p /usr/bin/python3.6 venv

चरण 4

   sudo pip install virtualenvwrapper

चरण 5

   sudo nano ~/.bashrc

चरण 6

इस दो लाइन कोड को bashrc फ़ाइल के अंत में जोड़ें

  export WORKON_HOME=~/.virtualenvs
  source /usr/local/bin/virtualenvwrapper.sh

चरण 7

नया टर्मिनल खोलें (अनुशंसित)

चरण 8

एक नया virtualenv बनाएँ

  mkvirtualenv myawesomeproject

चरण 9

Virtualenvs के बीच लोड या स्विच करने के लिए, वर्कऑन कमांड का उपयोग करें:

  workon myawesomeproject

चरण 10

अपने नए virtualenv से बाहर निकलने के लिए, का उपयोग करें

 deactivate

और सुनिश्चित करें कि पाइप बनाम पिप 3 का उपयोग करें

या python3 का उपयोग करके वर्चुअल वातावरण स्थापित करने के लिए नीचे दिए गए चरणों का पालन करें

Env स्थापित करें

python3 -m venv my-project-env

और निम्न आदेश का उपयोग करके अपने आभासी वातावरण को सक्रिय करें:

source my-project-env/bin/activate

6

चूँकि मैं बस एक घसीट में चला गया था, मैं दो घंटे पहले जो जवाब देना चाहता था, उसे लिखने की कोशिश करूँगा। यह उन लोगों के लिए है जो केवल कॉपी और पेस्ट समाधान नहीं चाहते हैं

पहला: क्या आपको आश्चर्य है कि रास्तों को कॉपी करना और चिपकाना कुछ लोगों के लिए काम करता है जबकि यह दूसरों के लिए काम नहीं करता है? ** मुख्य कारण, समाधान अलग-अलग अजगर संस्करण, 2.x या 3.x हैं। Virtualenv और virtualenvwrapper के वास्तव में अलग-अलग संस्करण हैं जो कि अजगर 2 या 3 के साथ काम करते हैं। 3. यदि आप अजगर 2 पर हैं तो इस तरह स्थापित करें:

sudo pip install virutalenv
sudo pip install virtualenvwrapper

यदि आप अजगर 3 का उपयोग करने की योजना बना रहे हैं तो संबंधित अजगर 3 संस्करण स्थापित करें

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

आपने सफलतापूर्वक अपने अजगर संस्करण के लिए पैकेज स्थापित कर लिए हैं और सभी सही हैं? खैर, यह कोशिश करो। workonअपने टर्मिनल में टाइप करें। आपका टर्मिनल कमांड नहीं ढूँढ पाएगा ( workonवर्चुअलाइन्ज़रवॉपर की एक कमांड है)। बेशक यह नहीं होगा। Workonएक निष्पादन योग्य है जो फ़ाइल लोड करने / स्रोत करने के बाद केवल आपके लिए उपलब्ध होगा virtualenvwrapper.sh। लेकिन आधिकारिक स्थापना गाइड आप इस एक पर कवर किया है, सही ?. बस अपना .bash_profile खोलें और निम्नलिखित डालें, यह प्रलेखन में कहता है:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

विशेष रूप से कमांड source /usr/local/bin/virtualenvwrapper.shमददगार लगती है क्योंकि कमांड वांछित फ़ाइल को लोड / स्रोत करता virtualenvwrapper.shहै जिसमें वे सभी कमांड होते हैं जिन्हें आप पसंद करना चाहते हैं workonऔर mkvirtualenvलेकिन हाँ, नहीं। आधिकारिक इंस्टॉलेशन गाइड का पालन करते समय, आपको प्रारंभिक पोस्ट से त्रुटि प्राप्त होने की बहुत संभावना है mkvirtualenv: command not found:। फिर भी कोई आदेश नहीं मिल रहा है और आप अभी भी निराश हैं। तो यहाँ क्या समस्या है? समस्या यह है कि virtualenvwrapper.sh नहीं है आप अभी इसकी तलाश कर रहे हैं। लघु अनुस्मारक ... आप यहाँ देख रहे हैं:

source /usr/local/bin/virtualenvwrapper.sh

लेकिन वांछित फ़ाइल खोजने के लिए एक बहुत ही सीधा आगे रास्ता है। बस टाइप करो

which virtualenvwrapper

अपने टर्मिनल के लिए। यह फ़ाइल के लिए आपके PATH को खोजेगा , क्योंकि यह कुछ फ़ोल्डर में होने की संभावना है जो आपके सिस्टम के PATH में शामिल है।

यदि आपका सिस्टम बहुत ही विदेशी है, तो वांछित फ़ाइल एक PATH फ़ोल्डर के बाहर छिप जाएगी। उस स्थिति में आप virtalenvwrapper.shशेल कमांड के साथ पथ पा सकते हैंfind / -name virtualenvwrapper.sh

आपका परिणाम कुछ इस तरह दिख सकता है: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh बधाई। You have found your missing file!। अब बस आपको अपने .bash_profile में एक कमांड को बदलना है। बस बदल दो:

source "/usr/local/bin/virtualenvwrapper.sh"

सेवा:

"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"

बधाई हो। Virtualenvwrapper अब आपके सिस्टम पर काम करता है। लेकिन आप अपने समाधान को बढ़ाने के लिए एक और काम कर सकते हैं। यदि आपको virtualenvwrapper.shवह कमांड मिली है, which virtualenvwrapper.shजो आपको पता है कि यह पथ के एक फ़ोल्डर के अंदर है। इसलिए यदि आप केवल फ़ाइल नाम लिखते हैं, तो आपका फ़ाइल सिस्टम यह मान लेगा कि फ़ाइल एक PATH फ़ोल्डर के अंदर है। इसलिए आपको पूरा रास्ता नहीं लिखना पड़ेगा। बस टाइप करो:

source "virtualenvwrapper.sh"

बस। अब आप निराश नहीं हैं। आपने अपनी समस्या हल कर ली है। उम्मीद है कि।


मैं वास्तव में सिर्फ आपके समाधान की नकल करता हूं और पोज देता हूं
जॉनी 5

2

virtualenvwrapperउबंटू 18.04.3 को सफलतापूर्वक स्थापित करने के लिए आपको निम्नलिखित कार्य करने होंगे:

  1. इंस्टॉल virtualenv

    sudo apt install virtualenv
  2. इंस्टॉल virtualenvwrapper

    sudo pip install virtualenv
    sudo pip install virtualenvwrapper
  3. .bashrcफ़ाइल के अंत में निम्नलिखित जोड़ें

    export WORKON_HOME=~/virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
    source ~/.local/bin/virtualenvwrapper.sh
  4. .bashrcफ़ाइल निष्पादित करें

    source ~/.bashrc
  5. अपना virtualenv बनाएँ

    mkvirtualenv your_virtualenv

ubuntu 20.04 पर भी काम करता है। एक छोटा सुधार tho: WORKON_HOME=~/.virtualenvsडिफ़ॉल्ट है। इसे सेट करने की आवश्यकता नहीं है। VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythonडिफ़ॉल्ट भी है, लेकिन python3 का उपयोग करते समय यह उपयोगी है। यह भी एक का उपयोग करना चाहिए export PATH="$HOME/.local/bin:$PATH"अजगर द्विआधारी पथ के लिए
scones

1

विंडोज 7 और गिट बैश पर यह मेरी मदद करता है:

  1. एक ~ / .bashrc फ़ाइल (अपने उपयोगकर्ता होम फ़ोल्डर के तहत) बनाएँ
  2. पंक्ति निर्यात जोड़ें WORKON_HOME = $ HOME / .virtualenvs (यदि यह मौजूद नहीं है तो आपको यह फ़ोल्डर बनाना होगा)
  3. लाइन स्रोत "C: \ Program Files (x86) \ Python36-32 \ Scripts \ virtualenvwrapper.sh" जोड़ें (अपने virtualenvwrapper.sh के लिए पथ बदलें)

पुन: प्रारंभ करें अपना Git बैश और mkvirtualenv आदेश अब अच्छी तरह से काम करेगा।


1

विंडोज 10 के लिए जीआईटी बैश और विंडोज के लिए पायथन 36 का उपयोग करके मैंने virtualenvwrapper.sh को कुछ अलग स्थान पर पाया और इस समस्या को हल किया।

source virtualenvwrapper.sh 
/c/users/[myUserName]/AppData/Local/Programs/Python36/Scripts

0

अपने मुद्दे को Ubuntu 14.04 OS में python 2.7.6 के साथ हल किया, ~ / .bash_profile (या यूनिक्स में .bashrc) फ़ाइलों में दो पंक्तियों को नीचे जोड़कर।

स्रोत "/rr/local/bin/virtualenvwrapper.sh"

Export WORKON_HOME = "/ opt / virtual_env /"

और फिर टर्मिनल पर इन दोनों लाइनों को निष्पादित कर रहा है।


0

विंडोज 10 पर, आभासी वातावरण बनाने के लिए, मैं " mkvirtualenv myproject" द्वारा " पाइप mkvirtualenv myproject" को प्रतिस्थापित करता हूं और यह अच्छी तरह से काम करता है।

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