Virtualenv-Befehl nicht gefunden


207

Ich konnte virtualenvtrotz verschiedener Versuche nicht zur Arbeit kommen. Ich habe unter virtualenvMAC OS X Folgendes installiert :

pip install virtualenv

und habe auch das PATHin mein hinzugefügt .bash_profile. Jedes Mal, wenn ich versuche, den virtualenvBefehl auszuführen , wird Folgendes zurückgegeben:

-bash: virtualenv: command not found

Jedes Mal pip install virtualenv, wenn ich renne , wird Folgendes zurückgegeben:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Ich verstehe, dass in Mac die virtualenvkorrekt installiert sein sollte

/usr/local/bin

Das virtualenvist zwar installiert /usr/local/bin, aber wenn ich versuche, den virtualenvBefehl auszuführen , wird der Befehl nicht gefunden. Ich habe auch versucht, den virtualenvBefehl im Verzeichnis auszuführen /usr/local/bin, und es gibt mir das gleiche Ergebnis:

-bash: virtualenv: command not found

Dies sind die Pfade, die ich meinem .bash_profile hinzugefügt habe

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Irgendwelche Problemumgehungen dafür? Warum ist das so?


1
Versuchen Sie, einen Symlink zur ausführbaren Datei virtualenv in / usr / local / bin hinzuzufügen
Justin Fay

Wo soll ich den Symlink erstellen? Es funktioniert immer noch nicht, obwohl ich versucht habe, einen Symlink in dem Verzeichnis hinzuzufügen, in dem ich virtualenv @justinfay
Arial

2
Wenn Sie sich die Pfade oben ansehen, können Sie den letzten Pfad im Befehl durch den Pfad zur eigentlichen ausführbaren Datei virtualenv ersetzen:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
Was für mich funktionierte war, einen Symlink hinzuzufügenln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

Funktioniert nicht in einem lubuntu
c24b

Antworten:


336

Wenn Sie es mit installiert haben

pip install virtualenv

Du musst rennen

sudo /usr/bin/easy_install virtualenv

das setzt es in /usr/local/bin/.

Das obige Verzeichnis sollte sich standardmäßig in Ihrem befinden PATH. Andernfalls bearbeiten Sie Ihre .zshrc(oder. bashrc) entsprechend.


1
immer froh zu helfen @nguns
Tal Avissar

Amazon LinuxProbieren Sie certbotdiese Lösung in einer AWS EC2-Instanz mit aus , wenn Sie Let's Encrypt's ausprobieren. Dies war der einzige Vorschlag, der mein virtuelles Problem gelöst hat.
Emrahgunduz

2
Du bist der beste!
Leon Wu

6
Die Ausgabe istsudo: /usr/bin/easy_install: command not found
Ced

2
Vielen Dank dafür - aber ich wünschte, ich wüsste, was Hexerei hier am Werk ist - was macht "easy_install", was regulärer Pip nicht macht? dh warum funktioniert das?
Thomas Kimber

153

Ich hatte das gleiche Problem und so habe ich es gelöst:

  1. Das Problem trat mir auf, weil ich virtualenv über pip als regulären Benutzer (nicht als Root) installiert habe. pip hat die Pakete im Verzeichnis installiert~/.local/lib/pythonX.X/site-packages
  2. Wenn ich pip als root oder mit Administratorrechten (sudo) ausgeführt habe, wurden Pakete in installiert /usr/lib/pythonX.X/dist-packages. Dieser Weg könnte für Sie anders sein.
  3. Der Befehl virtualenv wird erst im zweiten Szenario erkannt
  4. Um das Problem zu lösen, führen Sie es aus pip uninstall virtualenvund installieren Sie es erneut mit sudo pip install virtualenv(oder installieren Sie es als root).

8
Ich folgte Ihrer Lösung und erhielt die Meldung "... Wenn Sie pip mit sudo ausführen, möchten Sie möglicherweise das -H-Flag von sudo". Schließlich hat sudo -H pip install virtualenv die Arbeit für mich erledigt (unter OS X), danke
smudo78

1
Was ist, wenn root auf Ihrem Computer nicht verfügbar ist?
user5359531

Problem gelöst. Ich denke, dieser kann stattdessen in das globale Verzeichnis gehen --user.

Dieses Problem tritt auch auf, wenn pip selbst in ~ / .local / SOME_PATH installiert ist. Ich habe cpalles in site-packagesdir in /usr/lib/pythonx.x/site-packagesund rm -rfdas ursprüngliche Verzeichnis bearbeitet.
yoon

46

Die einfachste Antwort. Gerade:

pip uninstall virtualenv

und dann:

pip install virtualenv

Oder Sie haben virtualenv installiert mit sudo: In diesem Fall:

pip install --user virtualenv

Beeindruckend! Das hat mir den Trick getan. Ich benutze pyenvübrigens
race_carr

Dies ist der richtige Weg für Mac OS X mit Brew.
TCSGrad

Ich kämpfe seit Wochen dagegen und es hat meine begrenzte Zeit behindert, an einem Python-Projekt zu arbeiten, und dies war die einzige Lösung, die für mich auf dem Mac funktioniert hat. Danke dir!
HellaDev

37

Unter Ubuntu 18.04 LTS hatte ich auch den gleichen Fehler. Der folgende Befehl hat funktioniert:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvexistiert nicht
Leonard

Arbeitete wie ein Zauber an meinem 18.04. Danke
Nischaya Sharma

Abgestimmt, um aptals Nachfolger von zu fördern apt-get.
Graubart

24

Ich hatte das gleiche Problem unter Mac OS X El Capitan .

Als ich so installiert habe virtualenv, hatte sudo pip3 install virtualenvich nicht virtualenvunter meiner Kommandozeile.

Ich habe dieses Problem folgendermaßen gelöst:

  1. Deinstallieren Sie frühere Installationen.
  2. Wechseln Sie vor der virtualenvInstallation per Anruf zum Superuser-Kontosudo su
  3. Installieren Sie virtualenvdurch Aufrufenpip3 install virtualenv
  4. Schließlich sollten Sie in der Lage sein, virtualenvvon beiden userund super userKonto zuzugreifen .

15

Finde das Problem heraus

Versuchen Sie die Installation mit der --verboseFlagge

pip install virtualenv --verbose

Die Ausgabe sieht ungefähr so ​​aus

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

An der Ausgabe können wir erkennen, dass sie unter installiert ist. Stellen wir /home/manos/.local/bin/virtualenvalso sicher, dass PATH dies enthält.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

In meinem Fall können wir deutlich sehen, dass /home/manos/.local/bindas völlig fehlt und deshalb kann die Shell das Programm nicht finden.

Lösungen

Wir können dies auf viele Arten lösen:

  1. Wir können direkt in ein bestimmtes Verzeichnis installieren, indem wir an Pip-Optionen herumspielen (nicht empfohlen).
  2. Erstellen Sie entsprechende Symlinks unter /usr/local/binoder ähnlich.
  3. An PFAD /home/manos/.local/binanhängen.
  4. Als sudo installieren, um direkt zu installieren /usr/local/bin

Die beiden letzten Optionen sind wahrscheinlich die sinnvollsten. Die letzte Lösung ist die einfachste, daher werde ich nur Lösung 3 zeigen.

Fügen Sie dies zu ~ / .profile hinzu:

PATH="$PATH:$HOME/.local/bin"

Melden Sie sich ab und wieder ab und es sollte funktionieren.


1
Das hat perfekt funktioniert. Es sollte die akzeptierte Antwort und +1 für die detaillierte Erklärung sein
David The Programmer

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


arbeitete für mich ohne die 3. Python -m virtualenv <Name>
ofer.sheffer

11

In meinem Fall habe ich pip show virtualenvdie Informationen zum virtualenv-Paket abgerufen. Ich werde ähnlich aussehen und auch den Standort des Pakets anzeigen:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

Von diesem greifen Sie den Teil der Position bis zu dem .localTeil, der in diesem Fall ist /home/user/.local/. Den Befehl virtualenv finden Sie unter /home/user/.local/bin/virtualenv.

Sie können dann Befehle wie ausführen /home/user/.local/bin/virtualenv newvirtualenv.


10

Ich hatte das gleiche Problem. Ich habe die folgenden Schritte ausgeführt, damit es funktioniert

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

Das ist es. Es fing an zu arbeiten.

Verwendung von sudo -H----> Variable auf das Home- Verzeichnis des Zielbenutzers sudo -H: setzen HOME.


1
Es behebt für mich genau das gleiche Problem ... warum wird es nicht als Lösung geprüft?
Manuele

9

Du hast gesagt, dass du jedes Mal, wenn du rennst, das pip installbekommst Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Was Sie tun müssen, ist Folgendes:

  1. Verzeichnis ändern (gehen Sie zu dem Verzeichnis, in dem sich die Datei virtualenv.py befindet) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Wenn Sie dies tun, werden lsSie sehen, dass das Skript vorhanden istvirtualenv.py
  3. Führen Sie das Skript folgendermaßen aus: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Hoffe das hilft. Mein Rat wäre, venvs mehr zu erforschen. Hier ist eine gute Ressource: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

Ich hatte Probleme, weil ich apt verwendet habe, um das Python-Virtualenv-Paket zu installieren. Um es zum Laufen zu bringen, musste ich dieses Paket mit entfernen apt-get remove python-virtualenvund mit installieren pip install virtualenv.


1
Was die Frage lässt: Warum zum Teufel ist mein python3-virtualenv-Paket kaputt?
Dmitri DB

6

Stellen Sie sicher, dass dies virtualenvausführbar ist.

Wenn virtualenvnicht gefunden, sollte das Ausführen des vollständigen Pfads ( /usr/local/bin/virtualenv) funktionieren.


5

Ich denke, Ihr Problem kann mit einem einfachen symbolischen Link gelöst werden , aber Sie erstellen den symbolischen Link zur falschen Datei . Soweit ich weiß, ist virtualenv installiert /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv(Sie können die Nummern für Ihre Python-Version ändern), daher sollte der Befehl zum Erstellen des symbolischen Links lauten:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

Das Einrichten des Sym-Links war alles, was ich tun musste. Danke.
Kirby

5

Unter Ubuntu 18.4 unter AWS funktioniert die Installation mit Pip nicht richtig. Mit apt-get install wurde das Problem für mich gelöst.

sudo apt-get install python-virtualenv

und zu überprüfen

virtualenv --version

4

Das gleiche Problem: Also ich habe gerade pip uninstall virtualenv dann pip install virtualenv

pip install virtualenv --user

Sammeln von virtualenv mithilfe von zwischengespeicherten https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3wone :

Dann habe ich folgendes bekommen:

Das Skript virtualenv wird in '/Users/brahim/Library/Python/2.7/bin' installiert, das sich nicht in PATH befindet. Erwägen Sie, dieses Verzeichnis zu PATH hinzuzufügen, oder verwenden Sie --no-warn-script-location, wenn Sie diese Warnung unterdrücken möchten.

was klar sagt, wo es installiert ist und was zu tun ist, um es zu bekommen


2

Wenn Sie Linux verwenden, öffnen Sie Ihr Terminal, geben Sie virtualenv zur Hälfte ein und vervollständigen Sie es automatisch mit der Tabulatortaste. Wenn keine automatische Vervollständigung vorhanden ist, installieren Sie virtualenv auf Ihrem System, indem Sie Folgendes ausführen:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Sie können jetzt zu dem Ort navigieren, an dem Sie Ihr Projekt erstellen möchten, und Folgendes tun:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

Ich habe ein Upgrade auf Python 3.7 durchgeführt. Ich habe immer wieder versucht, virtualenv zu installieren. Es wird immer "Fehler: Es konnte keine Version gefunden werden, die die Anforderung virtualenv erfüllt (von Versionen: keine)" zurückgegeben. Ich habe irgendwo gelesen, dass ab einer bestimmten Python 3.x-Version virtualenv installiert ist, aber der Versuch, eine virtuelle Umgebung einfach zu erstellen, nicht funktioniert hat, würde den Fehler zurückgeben, dass der Befehl virtualenv nicht bekannt ist. Es funktionierte jedoch mit dem folgenden Befehl aus Ihrer Antwort "virtualenv venv --python = python3.7". Sonst nichts getan. Für den Fall, dass es jemand anderem hilft. MacOS-Umgebung.
CarmenA

1

Dies funktioniert in Ubuntu 18 und höher (in früheren Versionen nicht getestet):

sudo apt install python3-virtualenv

0

Befolgen Sie diese grundlegenden Schritte, um die virtuelle Umgebung einzurichten

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

Wir müssen unsere aktualisieren ~/.bashrc

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

Die ~/.bashrcDatei ist einfach ein Shell-Skript, das Bash ausführt, wenn Sie ein neues Terminal starten. Normalerweise verwenden Sie diese Datei, um verschiedene Konfigurationen festzulegen. In diesem Fall legen wir eine Umgebungsvariable fest, die aufgerufen wird WORKON_HOME , um auf das Verzeichnis zu verweisen, in dem sich unsere virtuellen Python-Umgebungen befinden. Anschließend laden wir alle erforderlichen Konfigurationen von virtualenvwrapper.

Um Ihre ~/.bashrcDatei zu aktualisieren, verwenden Sie einfach einen Standard-Texteditor. Nano ist wahrscheinlich am einfachsten zu bedienen. Eine einfachere Lösung besteht darin, den Befehl cat zu verwenden und Editoren vollständig zu vermeiden:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Nach dem Bearbeiten unserer ~ / .bashrc-Datei müssen wir die Änderungen neu laden:

source ~/.bashrc

Nachdem wir virtualenv und virtualenvwrapper installiert haben, besteht der nächste Schritt darin, die virtuelle Python-Umgebung zu erstellen - dies geschieht mit dem Befehl mkvirtualenv.

mkvirtualenv YOURENV

0

Für mich wurde es in diesem Pfad installiert (Python 2.7 unter MacOS): $ HOME / Library / Python / 2.7 / bin


0

Ich mache Angela Yus Online-iOS-Kurs und habe das gleiche Problem bekommen. Außerdem wurde mir die Erlaubnis verweigert, Fehler 13, als ich versuchte zu laufen virtualenv --python=/{myPath} {newVirtualEnvName}

Ich habe es gelöst durch:

  1. zum sudo user wechseln sudo su
  2. Navigieren zu meinem Zielordner (in dem meine neue virtuelle Umgebung leben soll), d. h. / Users / muUserName / Environments /
  3. Befehl ausführen,python -m virtualenv python27 wobei python27 ein Name meiner neuen virtuellen Umgebung ist
  4. oben erstellte Ordner pathon27 in meinem Environments- Ordner, und dann konnte ich ausführen source python27/bin/activate, um meine virtuelle Umgebung zu starten

0

Die einfache Antwort lautet: Wenn Sie kein Sudo-Benutzer sind, wie ich es nicht war. Sie müssen den Pfad Ihres bin-Ordners hinzufügen ( /home/myusername/.local/bin). Im Grunde sucht die Befehlszeile, in welchem ​​dieser Pfade der von Ihnen eingegebene Befehl ist.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

hier wird es local/binerst dann /usr/binund dann suchen /bin.


0

Ich hatte lange das gleiche Problem. Ich habe es gelöst, indem ich diese beiden Befehle ausgeführt habe. Erstens muss installiert werden, zweitens wird die Umgebung aktiviert:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Beachten Sie, dass ich es verwende python3. Sie können es ändern, pythonwenn es python3fehlschlägt. Vielen Dank.


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3 Befehle und alles funktioniert!


Die Frage ist für Mac OS, es gibt keineapt
Matteo

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.