Virtualenvwrapper für Python venv

Falc410

Vice Admiral
Registriert
Juni 2006
Beiträge
6.423
Man soll in Python 3 ja nicht mehr virtualenv nutzen sondern venv. Schön und gut, aber ich habe versucht herauszufinden ob es auch einen virtualenvwrapper gibt. Nichts gefunden leider. Ein Script für zsh was aber bei mir nicht funktioniert. Mir geht es halt darum, dass ich vorher mit dem Befehl workon mir viel Tipparbeit gespart habe wenn ich eine virtualenv aktivieren wollte. Noch dazu hat er mit tab mir gezeigt welche es überhaupt gibt auf meinem System. Jetzt muss ich immer source ".....pfad zu venv active" eintippen was super nervig ist.
 
Und was ist nun deine konkrete Frage bzw. dein konkretes Problem?
 
Du kannst dir auch Aliase anlegen, dann sparst du dir das Getippe. Ich habe das immer auf "act" gelegt ;)

Beispiel für Powershell (virtenv: venv wird im Ordner "env" angelegt, act: führt venv aus "env" aus:
Code:
function virtenv {python -m venv env}
function act {env\Scripts\activate.ps1}
 
Gibt es einen virtualenv wrapper für venv? Das ist die Frage. Ich hätte gerne wieder dass ich workon eintippe, tab drücke und er mir alle venv anzeigt und ich dann eine auswähle und die aktiviert wird.
 
Vielleicht hilft es dir ja: Schon mal über direnv in Kombination mit einer .envrc mit layout python nachgedacht?
Ich habe damit sehr gute Erfahrungen gemacht. Wenn einmal aufgesetzt dann einfach in mein Projekt navigieren und schon ist man automatisch in der richtigen und aktivierten venv.
 
maloz schrieb:
Ja genau das Script hatte ich oben gemeint, das funktioniert nicht und würde auch kein workon bieten.
Die anderen Antworten sind ein "hack" um virtualenvwrapper irgendwie mit venv zu nutzen, aber direkt darunter steht ja, dass es dafür nicht gedacht ist und nicht richtig funktioniert.

Und anscheinend gibt es keinen virtualenvwrapper für venv aber gleichzeitig ist virtualenv veraltet und soll nicht mehr benutzt werden? Wie sieht denn dann bitte eine moderne Python Entwicklungsumgebung aus?

@Bitopium Danke dir, das schaue ich mir gerade an. Da sind auch related projects verlinkt, so etwas wie autoevnv for zsh hört sich gut an - vielleicht kann ich damit was basteln, so dass automatisch die venv aktiviert wird wenn ich in das Verzeichnis wechsel.
 
Also im Prinzip reichen die Schritte für ein erstes Setup:

  • direnv installieren
  • direnv hook in deiner .zshrc: eval "$(direnv hook zsh)"
  • Eine .envrc in deinen Projekten mit dem Inhalt layout python
 
  • Gefällt mir
Reaktionen: Falc410
Zurück
Oben