virtualenvwrapper-Befehle funktionieren nicht


68
tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found
tow-81-235:Projects pessimisticoptimism$ sudo pip install virtualenvwrapper
Password:
Requirement already satisfied (use --upgrade to upgrade): virtualenvwrapper in /Library/Python/2.7/site-packages
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): virtualenv-clone in /Library/Python/2.7/site-packages (from virtualenvwrapper)
Cleaning up...
tow-81-235:Projects pessimisticoptimism$ mkvirtualenv development
-bash: mkvirtualenv: command not found

Warum erhalte ich diesen Fehler? Ich habe virtualenvund virtualenvwrapperinstalliert. Ich würde gerne mkvirtualenvund verwenden workon. Ich finde es seltsam, dass virtualenves funktioniert, aber virtualenvwrappernicht.

Antworten:


184

Stellen Sie zunächst sicher, dass Sie mit sudo installieren:

sudo pip install virtualenvwrapper

2. Fügen Sie die folgenden Zeilen an Ihre .bashrc-Datei an (mit nano ~/.bashrc):

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

3. Laden Sie Ihr Profil neu

source ~/.bashrc

Arbeitete für mich ..! Danke
Nirav Dangi

4
Nachdem ich mein Teminal geschlossen habe. Wenn ich wieder öffne, funktioniert der Workon-Befehl nicht. Es kommt vor, dass der Befehl nicht gefunden wurde. Gibt es eine Möglichkeit, permanent aktiv zu sein? Also kann ich jedes Mal, wenn ich mein Terminal öffne, 'source .venvs / app / bin / enabled' ausführen?
ePascoal

1
Hallo @ePascoal, die Zeilen in der .bashrc sollen die Änderungen dauerhaft machen. Jedes Mal, wenn Sie ein Terminal starten, liest es die .bashrc des aktuellen Benutzers (vorausgesetzt, Sie verwenden bash als Shell). Sie sollten in der Lage sein, workon appunter der 3. Zeile (`source ...) in Ihrem .bashrc hinzuzufügen, damit es jedes Mal automatisch aktiviert wird.
Chirinosky

MAC - BENUTZER - Verwenden Sie .bash_profilestatt .bashrcwie Will ‚s Antwort vermuten lässt.
Srini

Um es dauerhaft zu machen, stellen Sie sicher, dass Sie die beiden Zeilen (Export ... und Quelle ...) zu Ihrer ~ / .bahrc-Datei hinzufügen und nicht nur die Befehle im Terminal kopieren und einfügen!
learn2day

36

Zusammenfassung

Ich bin auf einem Mac und meine Antwort ähnelt der Antwort von @Ramces, außer dass sie mit bash_profile war. Ich möchte Mac-Benutzern nur etwas näher erläutern, damit sie wissen, dass es viele verschiedene Profile gibt, darunter:

  • .bashrc
  • .bash_profile
  • .Profil

Einige Dateien wie .profile haben keinen Vorrang vor .bash_profile (falls vorhanden) und werden dann ignoriert. Wenn Sie die folgenden Schritte erfolgreich ausführen und eine virtuelle Umgebung zum Laufen bringen, dann aber Ihr Terminal schließen und "Workon-Befehl nicht gefunden", müssen Sie das richtige Profil einrichten. Eine ausführliche Antwort finden Sie hier

Installationsschritte:

  1. sudo pip install virtualenv

    Installiert virtualenv (ermöglicht es Ihnen, Ihre Umgebungen zu trennen)

  2. sudo pip install virtualenvwrapper

    Installiert virtualenvwrapper (ermöglicht die Verwendung des Befehls 'workon')

  3. nano ~/.bash_profile

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

    Lädt das Profil neu. In Zukunft benötigen Sie nur noch Schritt 5 (zum Erstellen neuer Umgebungen) und Schritt 6 (zum Ausführen von Umgebungen).

  5. mkvirtualenv my_env

    Dadurch wird Ihre virtuelle Umgebung erstellt (in diesem Beispiel mit 'my_env').

  6. workon my_env

    Auf diese Weise können Sie in einer bestimmten Umgebung arbeiten (in diesem Beispiel mit 'my_env').


Arbeitete wie ein Zauber auf meinem Computer. Danke :)
Piyush Chauhan

Ich möchte workon my_env mit sudo ausführen. sudo workon my_env sagt workon: Befehl nicht gefunden. Wie behebe ich das?
Aksh1801

10

Nach der Installation des virtualenvwrapperPakets mit pipmüssen Sie auch einige Initialisierungen vornehmen / Ihre Einstellungen vornehmen. Siehe die Einführung in den virtualenvwrapper-Dokumenten .

Am relevantesten für das Auffinden der Befehle sollte das Sourcing des virtualenvwrapper-Skripts in Ihre Shell sein. In den Dokumenten wird es als erwähnt

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

Sie müssen den Pfad noch an Ihr Setup anpassen. Meine Vermutung für Ihren Mac wäre:

$ source /Library/Python/2.7/site-packages/virtualenvwrapper.sh

Wenn Sie sich bereits in der virtuellen Umgebung befinden, befindet sich die Datei virtualenvwrapper.sh im Ordner bin dieser virtuellen Umgebung selbst wie folgt: {source ~ / mypythonenv / bin / virtualenvwrapper.sh}
Uma Senthil

9

Einfacher Prozess

  1. sudo apt-get install python-pip (wenn pip nicht installiert ist)
  2. sudo pip installiere virtualenv
  3. Erstellen Sie ein Verzeichnis zum Speichern Ihrer virtuellen Umgebungen

    mkdir ~ / .virtualenvs

  4. sudo pip installiere virtualenvwrapper

  5. Führen Sie den folgenden Befehl aus

    export WORKON_HOME = ~ / .virtualenvs

  6. Fügen Sie virtualenvwrapper.sh zu .bashrc hinzu. Fügen Sie diese Zeile am Ende von ~ / .bashrc hinzu, damit die Befehle virtualenvwrapper geladen werden.

    . /usr/local/bin/virtualenvwrapper.sh

  7. Sie finden die Datei .bashrc.sh im Ausgangsverzeichnis, indem Sie Strg + h drücken. Wenn nicht, verwenden Sie den Befehl find, um .bashrc.sh "file ls -la ~ / | more" zu finden.

  8. Drücken Sie diesen Befehl

    Quelle /usr/local/bin/virtualenvwrapper.sh

  9. Drücken Sie diesen Befehl

    Quelle ~ / .bashrc


4

Es hört sich so an, als hätten Sie mehrere Python-Installationen auf Ihrem Computer und virtualenvwrapper zeigt nicht auf das richtige Python.

Finden Sie heraus, welcher Python virtualenvwrapper verwendet. Sie erhalten einen Hinweis, wo Sie suchen müssen which virtualenvwrapper.sh(in diesem Fall /usr/local/bin):

> /usr/local/bin/virtualenvwrapper.sh

Wenn Sie hier keine Rücksendung erhalten, stellen Sie sicher, dass Sie bei der Installation den richtigen Pip verwenden. Der pipBefehl kann mit einem anderen Python verknüpft sein, als Sie erwarten. Überprüfen Sie Ihre usr/local/binVerzeichnis für pip Links ( pip, pip2, pip2.7, pip3, pip3.5). Es ist einfach , System zu erhalten pip, pip2und pip2.7gemischt werden.

Nachdem Sie den Python-Speicherort gefunden haben, fügen Sie alle Pfade in Ihrem .profile:

export WORKON_HOME=$HOME/venv
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2
source /usr/local/bin/virtualenvwrapper.sh

Laden Sie zum Schluss Ihr Profil neu: source ~/.profile


Warum verwenden Sie $ HOME / Envs und nicht $ HOME / venv? Außerdem wird folgende Fehlermeldung angezeigt: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh: fork: Ressource vorübergehend nicht verfügbar.
Chikitin

Envsist eine willkürliche Wahl. Ich mag es venvbesser, da alles in Kleinbuchstaben geschrieben ist :) Wenn fork: Resource temporarily unavailableSie möglicherweise die maximale Anzahl von Prozessen Ihres Systems erreicht haben (entweder systemweit oder pro Benutzer oder wenn Ihnen der Speicher ausgeht).
Bruno

2

Ich bin auf Mac OS X 10.9.2 und für mich war virtualenvwrapper.shDatei in vorhanden

/usr/local/bin/virtualenvwrapper.sh

Also habe ich das einfach in eine ~/.profileDatei kopiert :

source /usr/local/bin/virtualenvwrapper.sh

Und jetzt ~/.profilesieht meine Datei ungefähr so ​​aus:

# MacPorts Installer addition on 2014-02-23_at_17:28:39: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.

source /usr/local/bin/virtualenvwrapper.sh

Und jetzt kann ich virtualenvwrapperBefehle ohne Probleme verwenden


1

Benutzer der Anaconda-Distribution (von Continuum) von Python sollten dies beachten

sudo pip install virtualenvwrapper

wird anakonda-bewusst sein. Also, wenn Sie

which python

Das sollte Ihnen eine Vorstellung davon geben, wo Sie Ihre virtuelle Umgebung in Ihren .bashrc- und / oder .profile-Konfigurationsdateien verweisen sollen.


pip kann eine Verknüpfung zu einer anderen Python herstellen. which pipund pip -Vgibt Ihnen eine bessere Vorstellung davon, mit welchem ​​Python-Pip verknüpft ist und daher virtualenvwrapper.
Bruno
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.