Laut dieser Antwort werden apt-get
Pakete pip
systemweit (von Canonical) installiert , und es können nur Pakete in einer virtuellen Umgebung (von Pypi) installiert werden.
Ich muss jedoch ein Paket in eine virtuelle Umgebung installieren, auf die nur über zugegriffen werden kann apt-get
, dh die nicht von Pypi gehostet wird.
Wie mache ich das?
apt
software-installation
pip
römisch
quelle
quelle
Antworten:
Eine andere Alternative besteht darin, die Datei mit herunterzuladen, mit zu
apt-get download
extrahierendpkg -x
und die extrahierten Dateien in Ihre virtuelle Umgebung zu verschieben:Beispiel:
Nehmen wir an, dies führt zu:
Verwenden Sie dann dpkg, um den Datenteil der .deb-Datei zu extrahieren:
In dem neu erstellten
./xyz-tmp
Verzeichnis haben Sie nun alle Dateien, die bei Verwendung von/
(root) installiert worden wärenapt-get install
.Angenommen, sie sind:
Sie müssen die Unterverzeichnisse noch zuordnen ( z. B.
dist-packages
vs.site-packages
) und können dann die Dateien in Ihre virtuelle Umgebung verschieben (unter der Annahme einer virtuellen Umgebung/home/user/.virtualenvs/py27
):Gegenüber meiner vorherigen Antwort hat dieser Ansatz den Vorteil, dass Sie nicht nachforschen müssen, welche Dateien installiert wurden, da Sie sie im Extraktionsverzeichnis sehen können. Es ist weiterhin eine Zuordnung von Verzeichnissen zwischen dem extrahierten Archiv und dem virtuellen Verzeichnis erforderlich.
quelle
Alles, was für eine virtuelle Umgebung benötigt wird, ist das Vorhandensein der Paketdateien im Teilbaum Ihrer virtuellen Umgebung. So lange Sie feststellen können, welche Dateien über apt-get auf dem System Python installiert wurden, können Sie diese in Ihr virtuelles Laufwerk kopieren. Dies umfasst Dateien im Site-Paketverzeichnis sowie an anderen Stellen in Ihrem Python-Unterbaum (z. B. Skripte).
Hypothetisches Beispiel:
Angenommen, es installiert ein Paket namens "xyz" in Ihrem Python 2.7-System. Möglicherweise erhalten Sie Folgendes:
Kopieren Sie die Dateien, die mit dem Paket "xyz" zusammenhängen, auf Ihr virtualenv (unter der Annahme eines virtualenv
/home/user/.virtualenvs/py27
):Die Schwierigkeit besteht darin , (1) in der Bestimmung , welche Dateien gehört zu einem bestimmten Paket, und (2) in Zuordnung Unterverzeichnisse zwischen dem System und den virtualenv Python (zB entsprechend
dist-packages
vs.site-packages
in dem obigen Beispiel).Wenn jemand mehr Erfahrung damit hat, bitte kommentieren.
quelle