Ich suche nach einer Möglichkeit, eine virtuelle Umgebung zu erstellen, die nur einige Bibliotheken (die ich ausgewählt habe) der Basis-Python-Installation enthält.
Um genauer zu sein, versuche ich, meine matplotlib während der Erstellung von virtualenv in virtualenv zu importieren. Es kann nicht effizient mit pip oder easy_install installiert werden, da einige fortran-Compiler-Bibliotheken fehlen. Die Art und Weise, wie ich es bis jetzt gemacht habe, war manuell zu kopieren
/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
Dies verhindert jedoch, dass die manuell importierten Links von yolk registriert werden (wodurch alle derzeit verfügbaren Bibliotheken in virtualenv gedruckt werden).
Gibt es also eine Möglichkeit, eine selektive Variante des zu erstellen?
virtualenv --system-site-packages
python
virtualenv
TheMeaningfulEngineer
quelle
quelle
--system-site-packages
. Answers schlägt vor,--system-site-packages
einige Pakete nicht selektiv zu verwenden und dann lokal zu überinstallieren, was anders ist und unterschiedliche Auswirkungen hat.Antworten:
Erstellen Sie die Umgebung mit
virtualenv --system-site-packages
. Dann aktivieren Sie die virtualenv und wenn Sie die Dinge in der virtualenv installiert werden sollen , anstatt das System Python, verwendenpip install --ignore-installed
oderpip install -I
. Auf diese Weise installiert pip das, was Sie angefordert haben, lokal, obwohl eine systemweite Version vorhanden ist. Ihr Python-Interpreter sucht zuerst im Paketverzeichnis von virtualenv, daher sollten diese Pakete die globalen Pakete beschatten.quelle
no-global-site-packages
aktiviert. Aber aus irgendeinem Grund weiß ich nicht, dass es ein Paket gab, das vom globalen System verwendet wurde. Die Verwendungpip install -I
für das Paket innerhalb der virtuellen Umgebung hat nicht funktioniert. Schließlich habe ich das Paket vorübergehend sowohl vom virtuellen als auch vom globalen System deinstalliert. Dann konnte ich es wieder im virtuellen und im System installieren (in dieser Reihenfolge). Also jetzt funktioniert es gut.Sie können das verwenden
--system-site-packages
und dann das spezifische Material für Ihre virtuelle Umgebung "überinstallieren". Auf diese Weise wird alles, was Sie in Ihre virtuelle Umgebung installieren, von dort übernommen, andernfalls wird es von Ihrem System übernommen.quelle
Installieren Sie die virtuelle Umgebung mit
und verwenden
pip install -U to install matplotlib
quelle
Sie können verwenden
virtualenv --clear
. die keine Pakete installieren, dann installieren Sie die gewünschten.quelle