556 Stimmen

Installation von Python-Paketen aus dem lokalen Dateisystemordner in virtualenv mit pip

Ist es möglich, Pakete mit pip aus dem lokalen Dateisystem zu installieren?

Ich habe gelaufen python setup.py sdist für mein Paket, das die entsprechende tar.gz-Datei erstellt hat. Diese Datei ist auf meinem System gespeichert unter /srv/pkg/mypackage/mypackage-0.1.0.tar.gz .

In einer virtuellen Umgebung möchte ich nun Pakete installieren, die entweder von pypi oder von einem bestimmten lokalen Speicherort stammen /srv/pkg .

Ist dies möglich?

PS Ich weiß, dass ich angeben kann pip install /srv/pkg/mypackage/mypackage-0.1.0.tar.gz . Das wird funktionieren, aber ich spreche von der Verwendung der /srv/pkg Ort als weiteren Ort für die Pip-Suche, wenn ich Folgendes eingebe pip install mypackage .

1voto

Ben Caine Punkte 1038

In meinem Fall lag es daran, dass diese Bibliothek von einer anderen lokalen Bibliothek abhing, die ich noch nicht installiert hatte. Die Installation der Abhängigkeit mit pip und dann der abhängigen Bibliothek löste das Problem.

0voto

Ich habe versucht, etwas wirklich Einfaches zu erreichen und bin kläglich gescheitert, wahrscheinlich bin ich dumm.

Wie auch immer, wenn Sie ein Skript haben/ Dockerfile die eine Python-Paket-Zip-Datei (z.B. von GitHub) heruntergeladen haben und diese dann installieren möchten, können Sie die file:/// Präfix, um es wie im Folgenden gezeigt zu installieren Beispiel :

$ wget https://example.com/mypackage.zip
$ echo "${MYPACKAGE_MD5}  mypackage.zip" | md5sum --check -
$ pip install file:///.mypackage.zip

ANMERKUNG : Ich weiß, dass Sie das Paket sofort installieren können, indem Sie pip install https://example.com/mypackage.zip aber in meinem Fall wollte ich die Prüfsumme verifizieren (ich bin nie paranoid genug) und ich scheiterte kläglich, als ich versuchte, die verschiedenen Optionen zu verwenden, die pip zur Verfügung stellt/den #md5 Fragment.

Es war erstaunlich frustrierend, etwas so Einfaches direkt mit pip . Ich wollte nur eine Prüfsumme übergeben und habe pip überprüfen, ob der Reißverschluss übereinstimmt vor die Installation.

Ich habe wahrscheinlich etwas sehr Dummes getan, aber schließlich habe ich aufgegeben und mich für das hier entschieden. Ich hoffe, es hilft anderen, die versuchen, etwas Ähnliches zu tun.

-1voto

rubmz Punkte 1753

Wenn Sie ein lokales Paket (Paket A) installieren wollen, das in einem anderen lokalen Projekt/Paket (B) verwendet werden soll, ist das ganz einfach. Alles, was Sie brauchen, ist eine CD nach (B) und ein Aufruf:

pip install /path/to/package(A)

Natürlich müssen Sie zuerst das Paket (A) mit kompilieren:

sudo python3 ./setup.py install

Und jedes Mal, wenn Sie Paket A ändern, führen Sie einfach erneut setup.py in Paket (A) dann pip install ... innerhalb des verwendenden Projekts/Pakets (B)

-3voto

Guber Punkte 1

Fügen Sie einfach das Verzeichnis mit dem pip-Befehl hinzu pip install mypackage file:/location/in/disk/mypackagename.filetype

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X