GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Python virtualenv-Fragen

Unter Windows habe ich Python 3.7 installiert und konnte virtualenv immer noch nicht aktivieren von Gitbash mit ./Scripts/activate obwohl es von Powershell aus funktionierte, nachdem Set-ExecutionPolicy Unrestricted ausgeführt wurde in Powershell und ändern Sie die Einstellung auf "Ja zu allen".

Ich mag Powershell nicht und benutze gerne Gitbash, also um virtualenv zu aktivieren Navigieren Sie in Gitbash zuerst zu Ihrem Projektordner, verwenden Sie ls , um den Inhalt des Ordners aufzulisten und sicherzustellen, dass "Scripts" angezeigt wird. Wechseln Sie mit cd Scripts in das Verzeichnis "Scripts". verwenden Sie . activate, sobald Sie sich im Pfad "Scripts" befinden um virtualenv zu aktivieren . Vergessen Sie nicht das Leerzeichen nach dem Punkt.


Ja, im Grunde ist es das, was virtualenv macht, und das ist, was der activate tut Befehl ist für, aus dem Dokument hier:

Skript aktivieren

In einer neu erstellten virtuellen Umgebung gibt es ein bin/activate-Shell-Skript oder eine Scripts/activate.bat-Stapeldatei unter Windows.

Dadurch wird Ihr $PATH topoint auf das Verzeichnis „virtualenv bin/directory“ geändert. Im Gegensatz zu workingenv ist dies alles, was es tut; es ist eine Bequemlichkeit. Aber wenn Sie den vollständigen Pfad wie /path/to/env/bin/python script.py verwenden, müssen Sie die Umgebung nicht zuerst aktivieren. Sie müssen source verwenden, da es die Umgebung vor Ort ändert. Nach dem Aktivieren einer Umgebung können Sie die Änderungen mit der Funktion Deaktivieren rückgängig machen.

Das Aktivierungsskript ändert auch Ihren Shell-Prompt, um anzuzeigen, welche Umgebung gerade aktiv ist.

Sie sollten also einfach activate verwenden Befehl, der all das für Sie erledigt:

> \path\to\env\bin\activate.bat

Normalerweise virtualenv erstellt Umgebungen im aktuellen Verzeichnis. Es sei denn, Sie beabsichtigen, virtuelle Umgebungen in C:\Windows\system32 zu erstellen Aus irgendeinem Grund würde ich ein anderes Verzeichnis für Umgebungen verwenden.

Sie sollten sich nicht mit Pfaden herumschlagen müssen:Verwenden Sie den activate Skript (in <env>\Scripts ), um sicherzustellen, dass die ausführbare Python-Datei und der Pfad umgebungsspezifisch sind. Sobald Sie dies getan haben, ändert sich die Eingabeaufforderung, um die Umgebung anzuzeigen. Sie können dann einfach easy_install aufrufen und alles, was Sie auf diese Weise installieren, wird in dieser Umgebung installiert. Verwenden Sie deactivate um alles auf den Stand vor der Aktivierung zurückzusetzen.

Beispiel:

c:\Temp>virtualenv myenv
New python executable in myenv\Scripts\python.exe
Installing setuptools..................done.
c:\Temp>myenv\Scripts\activate
(myenv) C:\Temp>deactivate
C:\Temp>

Beachten Sie, dass ich keinen Pfad für deactivate angeben musste - activate erledigt dies für Sie, sodass "Python" bei Aktivierung Python in der virtuellen Umgebung ausführt, nicht Ihr System-Python. (Probieren Sie es aus - machen Sie einen import sys; sys.prefix und es sollte das Stammverzeichnis Ihrer Umgebung ausgeben.)

Sie können einfach eine neue Umgebung aktivieren, um zwischen Umgebungen/Projekten zu wechseln, aber Sie müssen den vollständigen Pfad für activate angeben damit es weiß, welche Umgebung aktiviert werden soll. Sie sollten niemals explizit mit PATH oder PYTHONPATH herumspielen müssen.

Wenn Sie Windows Powershell verwenden, können Sie einen Wrapper nutzen. Unter Linux die virtualenvwrapper (der Link zeigt auf eine Portierung davon nach Powershell) macht das Leben mit virtualenv noch einfacher.

Aktualisierung: Nicht ganz falsch, aber vielleicht nicht ganz im Sinne von virtualenv . Sie könnten einen anderen Weg gehen:Wenn Sie beispielsweise Django und alles andere, was Sie für Ihre Website benötigen, in Ihrer virtuellen Umgebung installieren, können Sie in Ihrem Projektverzeichnis (in dem Sie Ihre Website entwickeln) mit aktivierter virtueller Umgebung arbeiten. Da es aktiviert war, würde Ihr Python Django und alles andere finden, was Sie einfach_in der virtuellen Umgebung installiert haben:und weil Sie in Ihrem Projektverzeichnis arbeiten, wären Ihre Projektdateien auch für Python sichtbar.

Weiteres Update: Sie sollten pip verwenden können , distribute statt setuptools , und einfach nur python setup.py install mit virtualenv . Stellen Sie einfach sicher, dass Sie eine Umgebung aktiviert haben, bevor Sie etwas darin installieren.


Linux
  1. Konvertieren Ihres Python 2-Codes in Python 3

  2. Installieren Sie python-novaclient unter Windows

  3. Richten Sie Python unter IIS 7.5 ein

  4. Aktualisieren Sie Python unter Linux 2.7 auf 3.5

  5. welche Python gegen PYTHONPATH

So installieren Sie Python 3 unter Windows 10

Installieren Sie Python 3 auf Redhat 8

So überprüfen Sie die Python-Version

Python if..else-Anweisung

Virtualenv verwendet falsches Python, obwohl es an erster Stelle in $PATH steht

Aktualisieren Sie Python von 2.6 auf 2.7 auf Centos 6.5