Ich habe mit dieser --no-site-packages
Option eine virtuelle Umgebung erstellt und viele Bibliotheken installiert. Jetzt möchte ich die --no-site-packages
Option zurücksetzen und auch die globalen Pakete verwenden.
Kann ich das tun, ohne die virtuelle Umgebung neu zu erstellen?
Etwas präziser:
Ich frage mich, was genau passiert, wenn eine virtuelle Umgebung mit dieser --no-site-packages
Option erstellt wird, anstatt diese Option nicht zu verwenden.
Wenn ich weiß, was passiert, kann ich herausfinden, wie ich es rückgängig machen kann.
python
virtualenv
Olivier Verdier
quelle
quelle
Antworten:
Versuchen Sie, die Datei
no-global-site-packages.txt
in IhremLib
Ordner in Ihrer virtuellen Umgebung zu entfernen (oder umzubenennen) .Wobei venv der Name Ihrer virtuellen Umgebung ist und python3.4 der jeweiligen Python-Version entspricht, zum Beispiel:
Und wenn Sie Ihre Meinung ändern und es zurückstellen möchten:
Hinweis: Wenn Sie die obige Datei nicht sehen, haben Sie eine neuere Version von virtualenv. Sie möchten stattdessen dieser Antwort folgen
quelle
virtualenv/python2.7/no-global-site-packages.txt
in meinem Ubuntu-Server.virtualenv/pyenv.cfg
Datei. Es gibt eine Option für Site-Pakete:include-system-site-packages = false
Ändern Sie diesen Wert und rufen Sie Activate.ps1venv
fürPython 3.4
.Zumindest für Python 3.5.2 befindet sich eine
pyvenv.cfg
Datei im Stammverzeichnis des Verzeichnisses virtualenv. Sie müssen lediglich dasinclude-system-site-packages
Flag von ändernfalse
intrue
:quelle
Wenn Sie virtualenvwrapper zum Verwalten von virtualenvs verwenden, können Sie mit der Shell-Funktion
toggleglobalsitepackages
zwischen der Verwendung und der Nichtverwendung von Site-Paketen wechseln.quelle
Versuchen Sie, einen Symlink zwischen
/virtualenv_root/lib/
und hinzuzufügen/path/to/desired/site-packages/
quelle
no-global-site-packages.txt
nirgendwo etwas.Gehen Sie zu Ihrem venv-Ordner und öffnen Sie ihn
pyvenv.cfg
. (Wenn beispielsweise Ihre virtuelle Umgebung aufgerufenmyenv
wird, befindet sich die Datei untermyenv\pyvenv.cfg
)Sie sehen eine boolesche Einstellung namens
include-system-site-packages
Setzen Sie diese Einstellung auf
true
, um globale Pakete zu verwendenWenn Sie die Verwendung globaler Pakete deaktivieren möchten, setzen Sie diese Einstellung
false
stattdessen auf.quelle