Aktivieren Sie virtualenv mit dem Alias

3

Ich kann meine virtuelle Python-Umgebung von ihrem Ordner aus durch Eingabe von aktivieren . bin/activate. Ich möchte stattdessen einen Aliasnamen für ein einzelnes Wort eingeben, z. B. shazamaus dem Basisordner (oder einem anderen Ordner), der die Umgebung aktiviert, Änderungen an meinem Masterprojektordner vornimmt und meine Projekte auflistet.

Ich habe versucht, einen Alias ​​in .bashrc zu erstellen, der auf eine .sh-Datei verweist, die Folgendes enthält:

cd ~/path-to-virtual-environment
. bin/activate
cd ~/path-to-master-project-folder
ls -a

Ich bekam einen Fehler, dem die Erlaubnis verweigert wurde, und lief davon chmod u+x <script file>. Das Skript wird jetzt ausgeführt, die VE wird jedoch nicht aktiviert. Während die Projektordner aufgelistet sind, befindet sich die Shell nicht im Master-Projektordner. Ich würde mich über eine Anleitung freuen. Vielen Dank.

HINWEIS: Ich habe eine ANTWORT in einem anderen Forum erhalten. Shell-Skripte ändern nicht die Umgebung, aus der sie aufgerufen werden. Verwenden Sie stattdessen eine Shell-Funktion in .bashrc.

shazam () {
  source ~/path-to-virtual-environment/bin/activate
  cd ~/path-to-master-project-folder
  ls -a
}
Landrykid
quelle

Antworten:

0

Alias ​​kann eine Liste von Befehlen haben:

alias shazm='source ~/path-to-virtual-environment/bin/activate; cd ~/path-to-master-project-folder; ls -a'
Tomasz Jakub Rup
quelle
0

Dies ist ein Kernfeature des virtualenvwrapper-Pakets zusammen mit einem robusten, ergänzenden Featureset.

Gehen Sie wie shazamfolgt vor, um eine virtuelle Umgebung mit dem Namen virtualenvwrapper zu erstellen :

mkvirtualenv shazam

So aktivieren Sie es:

workon shazam

So deaktivieren Sie es wie jedes andere aktive Virtualenv:

deactivate

Mit virtualenvwrapper sind viele Anwendungsfälle und Benutzerkonfigurationen möglich. Ich ziehe es beispielsweise vor, alle meine virtuellen Dateien in einem einzigen Verzeichnis zu speichern ~/.envs. Dies wird als Konfiguration unterstützt. Es ist ein Open Source und aktiv gepflegtes Projekt, ich kann es nicht genug empfehlen.

Eintopf
quelle