it-swarm.com.de

bash: mkvirtualenv: Befehl nicht gefunden

Nachdem ich die Anweisungen in Doug Hellmans virtualenvwrapper post befolgt habe, konnte ich immer noch keine Testumgebung starten.

[[email protected] ~]$ mkvirtualenv test
-bash: mkvirtualenv: command not found
[[email protected] ~]$

Es sollte beachtet werden, dass ich WORKON_HOME verwende, der sich nicht in meinem $HOME befindet. Ich habe versucht, nach /usr/local/bin/virtualenvwrapper.sh zu suchen, wie in den Installationsdokumenten virtualenvwrapper gezeigt, aber es existiert nicht.

Ich verwende CentOS 6 und Python 2.6.6, wenn dies wichtig ist.


# File: ~/.bash_profile
# ...

export WORKON_HOME="/opt/virtual_env/"
source "/opt/virtual_env/bin/virtualenvwrapper_bashrc"
81
Mike Pennington

Lösung 1 :

Aus irgendeinem Grund wurde virtualenvwrapper.sh in /usr/bin/virtualenvwrapper.sh und nicht unter /usr/local/bin installiert.

Folgendes in meinem .bash_profile funktioniert ...

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

Meine Installation scheint gut zu funktionieren, ohne dass virtualenvwrapper_bashrc

Lösung 2 :

Alternativ können Sie, wie unten erwähnt, die Chance nutzen, dass virtualenvwrapper.sh bereits in der PATH Ihrer Shell enthalten ist, und einfach einen source `which virtualenvwrapper.sh` ausgeben.

85
Mike Pennington

Versuchen:

source `which virtualenvwrapper.sh`

Die Backticks sind Befehlssubstitutionen - sie nehmen alles, was das Programm ausgibt, und fügen es in den Ausdruck ein. In diesem Fall prüft "which" $ PATH auf "virtualenvwrapper.sh" und gibt den Pfad dazu aus. Das Skript wird dann von der Shell über 'source' gelesen.

Wenn Sie möchten, dass dies bei jedem Neustart der Shell geschieht, sollten Sie zuerst die Ausgabe des Befehls "which" verwenden und dann die Zeile "source" in die Shell einfügen.

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

^ Abhängig von Ihrer Shell kann dies etwas abweichen. Achten Sie auch darauf, dass Sie nicht ein einzelnes> verwenden, da dies Ihre ~/.profile: -o abschneidet

42
Erich

Ich hatte das gleiche Problem unter OS X 10.9.1 mit Python 2.7.5. Keine Probleme mit WORKON_HOME für mich, aber ich musste manuell source "/usr/local/bin/virtualenvwrapper.sh" zu ~/.bash_profile (oder ~/.bashrc in Unix) hinzufügen, nachdem ich pip install virtualenvwrapper ausgeführt hatte.

37
Nick Benes

Voraussetzungen zum Ausführen dieses Befehls -

1) pip (rekursives Akronym: P ip I nstall P ython) ist ein Paketverwaltungssystem zum Installieren und Verwalten von in Python geschriebenen Softwarepaketen. Viele Pakete können im Python Package Index (PyPI) gefunden werden.

Sudo apt-get install python-pip

2) Installieren Sie die virtuelle Umgebung. Wird zum Erstellen einer virtuellen Umgebung verwendet, um Pakete und Abhängigkeiten mehrerer voneinander isolierter Projekte zu installieren.

Sudo pip install virtualenv

3) Installieren Sie den Wrapper für die virtuelle Umgebung Über den virtuellen Wrapper für die Umgebung

Sudo pip install virtualenvwrapper

Nach dem Installieren der Voraussetzungen müssen Sie den Wrapper für die virtuelle Umgebung in Aktion setzen, um eine virtuelle Umgebung zu erstellen. Im Folgenden sind die Schritte -

1) Setzen Sie das virtuelle Umgebungsverzeichnis in Pfadvariable -export WORKON_HOME=(directory you need to save envs).

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

Wie von @Mike erwähnt, kann die Quelle "which virtualenvwrapper.sh" oder which virtualenvwrapper.sh zum Auffinden der Datei "virtualenvwrapper.sh" verwendet werden.

Sie sollten am besten zwei Zeilen in ~/.bashrc einfügen, um zu vermeiden, dass die obigen Befehle jedes Mal beim Öffnen einer neuen Shell ausgeführt werden. Mehr brauchen Sie nicht, um eine Umgebung mit mkvirtualenv zu erstellen.

Punkte zu beachten -

  • Unter Ubuntu müssen Sie möglicherweise virtualenv und virtualenvwrapper als root installieren. Setzen Sie einfach den obigen Befehl mit Sudo voran.
  • Abhängig vom Installationsprozess von virtualenv kann der Pfad zu virtualenvwrapper.sh variieren. Suchen Sie den entsprechenden Pfad, indem Sie $ find/usr -name virtualenvwrapper.sh ausführen. Passen Sie die Zeile in Ihrem Script .bash_profile oder .bashrc entsprechend an.
17
Keshav

Da ich gerade durchgezogen bin, werde ich versuchen, die Antwort zu schreiben, die ich mir vor zwei Stunden gewünscht hätte. Dies ist für Leute, die nicht nur die Copy & Paste-Lösung wollen

Erstens: Wundern Sie sich, warum das Kopieren und Einfügen von Pfaden für einige Leute funktioniert, während es für andere nicht funktioniert? Es gibt tatsächlich verschiedene Versionen von Virtualenv und Virtualenvwrapper, die entweder mit Python 2 oder 3 arbeiten. Wenn Sie Python 2 verwenden, installieren Sie es wie folgt: 

Sudo pip install virutalenv
Sudo pip install virtualenvwrapper

Wenn Sie planen, Python 3 zu verwenden, installieren Sie die entsprechenden Python 3-Versionen

Sudo pip3 install virtualenv
Sudo pip3 install virtualenvwrapper

Sie haben die Pakete für Ihre Python-Version erfolgreich installiert und sind fertig, oder? Nun, probier es aus. Geben Sie workon in Ihr Terminal ein. Ihr Terminal kann den Befehl nicht finden (workon ist ein Befehl von virtualenvwrapper). Natürlich nicht. Workon ist eine ausführbare Datei, die Ihnen erst zur Verfügung steht, wenn Sie die Datei virtualenvwrapper.sh laden. Aber die offizielle Installationsanleitung hat Sie hierüber berichtet, oder? Öffnen Sie einfach Ihr .bash_profile und fügen Sie Folgendes ein, heißt es in der Dokumentation: 

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

Besonders der Befehl source /usr/local/bin/virtualenvwrapper.sh scheint hilfreich zu sein, da der Befehl die gewünschte Datei virtualenvwrapper.sh zu laden/zu laden scheint, die alle Befehle enthält, mit denen Sie arbeiten möchten, wie workon und mkvirtualenv. Aber ja, nein. Wenn Sie der offiziellen Installationsanleitung folgen, erhalten Sie sehr wahrscheinlich den Fehler aus dem ersten Beitrag: mkvirtualenv: command not found. Es wird immer noch kein Befehl gefunden und Sie sind immer noch frustriert. Also, was ist das Problem hier? Das Problem ist, dass es bei virtualenvwrapper.sh nicht das ist, wo Sie es gerade suchen. Kurze Erinnerung ... Sie suchen hier: 

source /usr/local/bin/virtualenvwrapper.sh

Es gibt jedoch einen recht einfachen Weg, um die gewünschte Datei zu finden. Schreib einfach 

which virtualenvwrapper

zu Ihrem Terminal. Dadurch wird Ihr PFAD nach der Datei durchsucht, da sich diese Datei höchstwahrscheinlich in einem Ordner befindet, der im PFAD Ihres Systems enthalten ist.

Wenn Ihr System sehr exotisch ist, wird die gewünschte Datei außerhalb eines PATH-Ordners ausgeblendet. In diesem Fall finden Sie den Pfad zu virtalenvwrapper.sh mit dem Shell-Befehl find / -name virtualenvwrapper.sh

Ihr Ergebnis könnte ungefähr so ​​aussehen: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh Herzlichen Glückwunsch. You have found your missing file!. Jetzt müssen Sie nur noch einen Befehl in Ihrem .bash_profile ändern. Nur ändern: 

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

zu: 

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

Herzliche Glückwünsche. Virtualenvwrapper funktioniert jetzt auf Ihrem System. Aber Sie können noch eine Sache tun, um Ihre Lösung zu verbessern. Wenn Sie die Datei virtualenvwrapper.sh mit dem Befehl which virtualenvwrapper.sh gefunden haben, wissen Sie, dass sie sich in einem Ordner des PFADs befindet. Wenn Sie also nur den Dateinamen schreiben, geht Ihr Dateisystem davon aus, dass sich die Datei in einem PATH-Ordner befindet. Sie müssen also nicht den vollständigen Pfad ausschreiben. Schreib einfach:

source "virtualenvwrapper.sh"

Das ist es. Sie sind nicht mehr frustriert. Du hast dein Problem gelöst. Hoffnungsvoll.

2
Xen_mar

Unter Windows 7 und Git Bash hilft mir das:

  1. Erstellen Sie eine ~/.bashrc -Datei (in Ihrem Benutzerordner).
  2. Zeile hinzufügen export WORKON_HOME = $ HOME/.virtualenvs (Sie müssen diesen Ordner erstellen, falls er nicht existiert).
  3. Fügen Sie die Zeile source "C:\Programme (X86)\Python36-32\Scripts\virtualenvwrapper.sh" hinzu. (Pfad für Ihre.

Restart Ihr git bash und der Befehl mkvirtualenv funktionieren jetzt einwandfrei.

1

Mit Git Bash unter Windows 10 und Python36 für Windows fand ich die Datei virtualenvwrapper.sh an einer etwas anderen Stelle

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

Unter Windows 10 ersetze ich "pip mkvirtualenv myproject" durch "mkvirtualenv myproject", um die virtuelle Umgebung zu erstellen, und das funktioniert gut.

0
Ayoub_DATA

Mein Problem in Ubuntu 14.04 OS mit Python 2.7.6 wurde behoben, indem unter zwei Zeilen ~/.bash_profile (oder ~/.bashrc in Unix) hinzugefügt wurde.

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

export WORKON_HOME = "/ opt/virtual_env /"

Und dann diese beiden Linien auf das Terminal ausführen.

0
Mants

Verwenden Sie dieses Verfahren, um eine virtuelle Umgebung in Ubuntu zu erstellen.

Schritt 1 Rohr einbauen

   Sudo apt-get install python-pip

Schritt 2 Installieren Sie Virtualenv

   Sudo pip install virtualenv

Schritt 3 Erstellen Sie ein Verzeichnis, um Ihre Virtualenvs zu speichern (ich verwende ~/.virtualenvs) 

   mkdir ~/.virtualenvs

oder verwenden Sie diesen Befehl, um eine bestimmte Version von Python in env zu installieren

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

Setp 4

   Sudo pip install virtualenvwrapper

Schritt 5

   Sudo nano ~/.bashrc

Schritt 6 Fügen Sie diesen zwei Zeilencode am Ende der bashrc-Datei hinzu

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

Schritt 7 neues Terminal öffnen (empfohlen)

Schritt 8 Erstellen Sie eine neue Virtualenv

  mkvirtualenv myawesomeproject

Schritt 9 Verwenden Sie den Befehl workon zum Laden oder Wechseln zwischen virtualenvs:

  workon myawesomeproject

Schritt 10 Um Ihre neue Virtualenv zu beenden, verwenden Sie 

 deactivate

und mach mit pip vs pip3 

0
Hemanth SP