bash: mkvirtualenv: komut bulunamadı


100

Doug Hellman'ın virtualenvwrappergönderisindeki talimatları izledikten sonra , hala bir test ortamını ateşleyemedim.

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

Bende WORKON_HOMEolmayanları kullandığıma dikkat edilmelidir $HOME. Kurulum belgelerinde/usr/local/bin/virtualenvwrapper.sh gösterildiği gibi aramayı denedim , ancak mevcut değil.virtualenvwrapper

Önemli olursa CentOS 6 ve python 2.6.6 çalıştırıyorum.


# File: ~/.bash_profile
# ...

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

Yanıtlar:


107

1.Çözüm :

Bazı nedenlerden dolayı, altında yerine virtualenvwrapper.shtakılı ./usr/bin/virtualenvwrapper.sh/usr/local/bin

.bash_profileEserlerimde aşağıdakiler ...

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

Yüklemem kaynak kullanılmadan iyi çalışıyor gibi görünüyor virtualenvwrapper_bashrc

2.Çözüm :

Alternatif olarak, aşağıda belirtildiği gibi, virtualenvwrapper.shzaten kabuğunuzda olan şansı kullanabilir PATHve yalnızca birsource `which virtualenvwrapper.sh`


5
Ayar WORKON_HOME"~ / .virtualenvs" (hiç varsayılan değer ) özel virtualenvs ayarlamanızı sağlar
Pierre de LESPINAY

1
Dağıtımınızın paket yöneticisini kullanarak kurarsanız, /usr/binbunun yerine dosyalar olacaktır /usr/local/bin. Genel olarak, birinin veya diğerinin bulunacağını varsaymamalısınız; bu, bir PATHdeğişkene sahip olmamızın nedenlerinden biridir .
üçlü

Bu cevap, benim yapmayı tercih ettiğim pip ile virtualenvwrapper'ı kurmaya dayanıyor.
Mike Pennington

Önce yüklenmesi gerekiyor,pip install virtualenvwrapper
Eddie

WORKON_HOMEisteğe bağlıdır ve çözümle hiçbir ilgisi yoktur.
çörekler

55

Deneyin:

source `which virtualenvwrapper.sh`

Ters işaretler komut ikamesidir - programın yazdırdığı her şeyi alır ve ifadeye eklerler. Bu durumda "hangisi" virtualenvwrapper.sh'yi bulmak için $ PATH'ı kontrol eder ve yolunu çıktı olarak verir. Komut dosyası daha sonra kabuk tarafından 'kaynak' aracılığıyla okunur.

Kabuğunuzu her yeniden başlattığınızda bunun olmasını istiyorsanız, muhtemelen çıktıyı önce "hangi" komutundan almak ve sonra "kaynak" satırını kabuğunuza koymak daha iyidir, şöyle bir şey:

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

^ Bu, kabuğunuza bağlı olarak biraz farklılık gösterebilir. Ayrıca, tek bir> kullanmamaya dikkat edin, çünkü bu ~ /. Profilinizi kısaltacaktır: -o


4
Bu, sorunu çözmek için değerli bir ipucu olsa da, bir cevap gerçekten bundan biraz daha fazla ayrıntıya ihtiyaç duyar. Lütfen bunun sorunu nasıl çözeceğini açıklamak için düzenleyin . Alternatif olarak, bunu bir yorum olarak yazmayı düşünün.
Toby Speight

1
Bu benim sorunumu çözdü. Ama birisi neden ve nasıl olduğunu açıklayacak mı?
h0r53

1
Ters işaretler komut ikamesidir - programın yazdırdığı her şeyi alır ve ifadeye eklerler. Bu durumda "hangisi" virtualenvwrapper.sh'yi bulmak için $ PATH'ı kontrol eder ve yolunu çıktı olarak verir. Komut dosyası daha sonra kabuk tarafından 'kaynak' aracılığıyla okunur.
Erich

43

OS X 10.9.1'de python 2.7.5 ile aynı sorunu yaşadım. WORKON_HOMEBenim için sorun yok , ancak çalıştırdıktan sonra manuel source "/usr/local/bin/virtualenvwrapper.sh"olarak ~/.bash_profile(veya ~/.bashrcunix'te) eklemek zorunda kaldımpip install virtualenvwrapper


1
"/Usr/local/bin/virtualenvwrapper.sh" kaynağını manuel olarak nereye eklediniz?
Gregology

1
@Gregology bu satırı ekledim ~/.bash_profile. İlk eklediğinizde, ya terminali yeniden yüklemeniz (çalışır .bash_profile) ya da bu sourcekomutu doğrudan komut satırından çalıştırmanız gerektiğini unutmayın .
Nick Benes

1
Dosya adına sahip bir başlığınız varsa ve tüm içeriği görüntülemeniz çok faydalı olacaktır, böylece "nereye koydunuz?" Hakkında takip soruları almanıza gerek kalmaz.
JGallardo

1
Kullanıyor olmanız .bash_profileveya kullanmamanız .bashrc, hangi platformu kullandığınızın doğrudan bir sonucu olmasa da, bazı platformlarda biri veya diğeri eksik olabilir. Farklılıkları için Bash kılavuz sayfasına bakın. Genel olarak, buna yalnızca sizin için gerçekten ihtiyacınız vardır .bash_profile, ancak bazı dağıtımlar işleri karmaşıklaştıran kurulumları kullanır.
üçlü

25

Bu komutu yürütmek için ön koşullar -

  1. Pip (recursive kısaltması P ip Ben nstalls P ackages) yüklemek ve Python ile yazılmış yazılım paketlerini yönetmek için kullanılan bir paket yönetim sistemidir. Python Paket Dizininde (PyPI) birçok paket bulunabilir.

    sudo apt-get install python-pip

  2. Sanal Ortamı kurun. Sanal ortam oluşturmak, birbirinden izole birden fazla projenin paketlerini ve bağımlılıklarını kurmak için kullanılır.

    sudo pip sanalenv yükle

  3. Sanal ortam sarmalayıcısını yükleyin Sanal ortam sarmalayıcı hakkında

    sudo pip sanalenvwrapper'ı yükle

Önkoşulları kurduktan sonra, sanal ortam oluşturmak için sanal ortam sarmalayıcısını eyleme geçirmeniz gerekir. Adımlar aşağıdadır -

  1. yol değişkeninde sanal ortam dizinini ayarla- export WORKON_HOME=(directory you need to save envs)

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

@Mike tarafından belirtildiği gibi, "virtualenvwrapper.sh" olan kaynak veya which virtualenvwrapper.shvirtualenvwrapper.sh dosyasını bulmak için kullanılabilir.

Her yeni kabuğu açtığınızda yukarıdaki komutları çalıştırmaktan kaçınmak için ~ / .bashrc içinde iki satırın üstüne koymak en iyisidir. Mkvirtualenv kullanarak ortam oluşturmak için ihtiyacınız olan tek şey bu

Unutulmaması gereken noktalar -

  • Ubuntu altında, root olarak virtualenv ve virtualenvwrapper'ı kurmanız gerekebilir. Yukarıdaki komutun önüne sudo eklemeniz yeterlidir.
  • Virtualenv'i yüklemek için kullanılan işleme bağlı olarak, virtualenvwrapper.sh dosyasının yolu değişebilir. $ Find / usr -name virtualenvwrapper.sh komutunu çalıştırarak uygun yolu bulun. .Bash_profile veya .bashrc betiğinizdeki satırı buna göre ayarlayın.

1
Bir not ekleniyor. Ubuntu 18.04'te, kurulumdan sonra yeniden başlatmak zorunda kaldım ve sonra çalıştı.
Dan Grahn

@screenmutt Değerli görüşleriniz için teşekkürler. 16.04 ubuntu kullandığım için kaçırmış olabilirim. Ancak, hangi adımdan sonra yeniden başlatmanız gerektiğini bilmek isterim? Pip paketlerini kurduktan sonra mı yoksa "sanal ortam dizini" kurduktan sonra mı?
Keshav

Ambalajın takılmasından sonra. Bundan sonra çalıştı.
Dan Grahn

1
@DanGrahn Yeniden başlatmanıza gerek yok, sadece yeniden çalıştırmanız gerekiyor .bashrc- ya açıkça source ~/.bashrcmevcut terminalinizde ya da yeni bir terminal penceresi açın
TJ Ellis

12

Ubuntu'da sanal ortam oluşturmak için bu prosedürü kullanın

Aşama 1

Pip yükleyin

   sudo apt-get install python-pip

Adım 2

Virtualenv'yi yükleyin

   sudo pip install virtualenv

Aşama 3

Virtualenv'lerinizi depolamak için bir dizin oluşturun (~ / .virtualenvs kullanıyorum)

   mkdir ~/.virtualenvs

veya bu komutu env içinde python'un belirli bir sürümünü yüklemek için kullanın

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

4. adım

   sudo pip install virtualenvwrapper

Adım 5

   sudo nano ~/.bashrc

6. adım

Bu iki satırlı kodu bashrc dosyasının sonuna ekleyin

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

7. Adım

Yeni terminal açın (önerilir)

8. adım

Yeni bir sanal ortam oluştur

  mkvirtualenv myawesomeproject

9. adım

Virtualenv'leri yüklemek veya arasında geçiş yapmak için, workon komutunu kullanın:

  workon myawesomeproject

10. adım

Yeni sanal ortamınızdan çıkmak için şunu kullanın:

 deactivate

ve pip vs pip3 kullandığınızdan emin olun

VEYA python3 kullanarak sanal ortamı kurmak için aşağıdaki adımları izleyin

Env yükle

python3 -m venv my-project-env

ve aşağıdaki komutu kullanarak sanal ortamınızı etkinleştirin:

source my-project-env/bin/activate

6

Biraz zorlandığım için, iki saat önce dilediğim cevabı yazmaya çalışacağım. Bu, yalnızca kopyala ve yapıştır çözümünü istemeyenler içindir

Birincisi: Yolları kopyalayıp yapıştırmanın neden bazı insanlar için işe yaradığını ve diğerleri için işe yaramadığını merak ediyor musunuz? ** Ana neden, çözümlerin farklı olması farklı python sürümleridir, 2.x veya 3.x. Aslında python 2 veya 3 ile çalışan virtualenv ve virtualenvwrapper'ın farklı sürümleri vardır. Python 2 kullanıyorsanız şu şekilde kurun:

sudo pip install virutalenv
sudo pip install virtualenvwrapper

Python 3 kullanmayı planlıyorsanız, ilgili python 3 sürümlerini yükleyin

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

Python sürümünüz için paketleri başarıyla yüklediniz ve her şey hazır, değil mi? Peki, dene. Tip workonTerminalinize. Terminaliniz komutu bulamayacaktır workon(virtualenvwrapper'ın bir komutudur). Tabii ki olmayacak. Workonyalnızca dosyayı yüklediğinizde / kaynak sağladığınızda kullanabileceğiniz bir yürütülebilir dosyadır virtualenvwrapper.sh. Ama resmi kurulum rehberi bunu ele aldı, değil mi? .Bash_profile dosyanızı açın ve aşağıdakileri ekleyin, belgelerde yazıyor:

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

Özellikle komut source /usr/local/bin/virtualenvwrapper.shkomut yük / kaynağına istenen dosyayı görünüyor beri yararlı görünüyor virtualenvwrapper.shsizin gibi çalışmak isteyen tüm komutları içerir workonve mkvirtualenv. Ama evet, hayır. Resmi talimatlar takip zaman, başlangıçtaki görevinden hatayı almaya çok muhtemeldir: mkvirtualenv: command not found. Hala hiçbir komut bulunamıyor ve hala hayal kırıklığına uğruyorsunuz. Peki buradaki sorun nedir? Sorun şu ki, virtualenvwrapper.sh şu anda onu arıyor değilsiniz. Kısa hatırlatma ... buraya bakıyorsunuz:

source /usr/local/bin/virtualenvwrapper.sh

Ancak istenen dosyayı bulmanın oldukça basit bir yolu var. Sadece yaz

which virtualenvwrapper

terminalinize. Bu, sisteminizin PATH'inde bulunan bir klasörde olma olasılığı çok yüksek olduğundan, PATH'inizi dosya için arayacaktır .

Sisteminiz çok egzotikse, istenen dosya bir PATH klasörünün dışında saklanacaktır. Bu durumda, yolu virtalenvwrapper.shkabuk komutu ile bulabilirsiniz.find / -name virtualenvwrapper.sh

Sonucunuz şunun gibi görünebilir: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh Tebrikler. You have found your missing file!. Şimdi tek yapmanız gereken .bash_profile dosyanızda bir komutu değiştirmek. Sadece değiştir:

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

to:

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

Tebrikler. Virtualenvwrapper artık sisteminizde çalışıyor. Ancak çözümünüzü geliştirmek için bir şey daha yapabilirsiniz. Dosyayı virtualenvwrapper.shkomutla bulduysanız which virtualenvwrapper.sh, PATH klasörünün içinde olduğunu bilirsiniz. Bu nedenle, sadece dosya adını yazarsanız, dosya sisteminiz dosyanın bir PATH klasörünün içinde olduğunu varsayacaktır. Yani tam yolu yazmak zorunda değilsin. Sadece yaz:

source "virtualenvwrapper.sh"

Bu kadar. Artık hayal kırıklığına uğramıyorsun. Problemini çözdün. İnşallah.


Aslında çözümünüzü kopyaladım ve takip ettim
Johnny 5

2

virtualenvwrapperUbuntu 18.04.3'e başarılı bir şekilde kurmak için aşağıdakileri yapmanız gerekir:

  1. Yüklemek virtualenv

    sudo apt install virtualenv
  2. Yüklemek virtualenvwrapper

    sudo pip install virtualenv
    sudo pip install virtualenvwrapper
  3. Aşağıdakileri .bashrcdosyanın sonuna ekleyin

    export WORKON_HOME=~/virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
    source ~/.local/bin/virtualenvwrapper.sh
  4. .bashrcDosyayı yürütün

    source ~/.bashrc
  5. Sanal ortamınızı oluşturun

    mkvirtualenv your_virtualenv

ubuntu 20.04 üzerinde de çalışıyor. küçük bir düzeltme tho: WORKON_HOME=~/.virtualenvsvarsayılandır. bunu ayarlamaya gerek yok. VIRTUALENVWRAPPER_PYTHON=/usr/bin/pythonaynı zamanda varsayılandır, ancak python3 kullanırken bu yararlıdır. ayrıca export PATH="$HOME/.local/bin:$PATH"python ikili yolları için de kullanılmalıdır
çörekler

1

Windows 7 ve Git Bash'de bu bana yardımcı oluyor:

  1. Bir ~ / .bashrc dosyası oluşturun (kullanıcı ana klasörünüzün altında)
  2. Dışa aktarma satırı ekle WORKON_HOME = $ HOME / .virtualenvs (yoksa bu klasörü oluşturmalısınız)
  3. "C: \ Program Files (x86) \ Python36-32 \ Scripts \ virtualenvwrapper.sh" satır kaynağını ekleyin (virtualenvwrapper.sh için yolu değiştirin)

Git bash ve mkvirtualenv komutunuzu yeniden başlatın şimdi güzelce çalışacaktır.


1

Windows 10'da Git Bash ve Windows için Python36'yı kullanarak virtualenvwrapper.sh dosyasını biraz farklı bir yerde buldum ve bunu çalıştırmak sorunu çözdü

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

0

Ubuntu 14.04 OS'de python 2.7.6 ile sorunumu ~ / .bash_profile (veya unix'te ~ / .bashrc) dosyalarına iki satırın altına ekleyerek çözdüm.

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

dışa aktar WORKON_HOME = "/ opt / virtual_env /"

Ve sonra bu iki satırı terminale uyguluyoruz.


0

Windows'un 10 günü, sanal ortam yaratmak için, ben "yerine pip mkvirtualenv " tarafından myproject " mkvirtualenv myproject" ve iyi ki işler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.