Wie verwende ich Pythons Pip, um die komprimierten Dateien für ein Paket herunterzuladen und zu behalten?

104

Wenn ich will , das verwenden pipBefehl ein Paket zum Download (und ihre Abhängigkeiten), aber halten alle die ZIP - Dateien , die heruntergeladen bekommen (sagen wir, django-socialregistration.tar.gz) - ist es eine Möglichkeit , das zu tun?

Ich habe verschiedene Befehlszeilenoptionen ausprobiert, aber es scheint immer die Zip-Datei zu entpacken und zu löschen - oder es wird die Zip-Datei abgerufen, aber nur für das Originalpaket, nicht für die Abhängigkeiten.

John C.
quelle

Antworten:

77

pip install --downloadist veraltet. Ab Version 8.0.0 sollten Sie den folgenden pip downloadBefehl verwenden:

 pip download <package-name>
Anton Khodak
quelle
3
und wie installiere ich die heruntergeladenen Pakete später?
Knocte
1
Dies ist die aktuellste Antwort. Vielen Dank
KJ50
3
@knoctepip install path-to-downloaded-package
Anton Khodak
5
habe das vor einigen Tagen versucht und ich denke, es wurde immer noch versucht, Deps aus dem Internet abzurufen, anstatt die heruntergeladenen zu verwenden; IIRC, ich musstesudo pip install <path-to-downloaded-package> --no-index --find-links `pwd`
knocte
3
Beachten Sie, dass pip downloadauch unterstützt, -r requirements.txtso dass Sie sie alle einfach von einem mit dem Internet verbundenen Computer herunterladen, dann auf einen Offline-Computer kopieren und installieren können, wie die oben genannten Kommentatoren erwähnt
Hawkins
113

Die --download-cacheOption sollte tun, was Sie wollen:

pip install --download-cache="/pth/to/downloaded/files" package

Als ich dies testete, wurde das Hauptpaket heruntergeladen, gespeichert und in Ordnung installiert, aber die Abhängigkeiten wurden mit ihrem vollständigen URL-Pfad als Namen gespeichert - ein bisschen ärgerlich, aber alle tar.gzDateien waren da.

Die --downloadOption lädt das Hauptpaket und seine Abhängigkeiten herunter und installiert keines davon. ( Beachten Sie, dass die Option vor Version 1.1 keine Abhängigkeiten heruntergeladen hat.)--download

pip install package --download="/pth/to/downloaded/files"

In der pipDokumentation wird die Verwendung --downloadfür schnelle und lokale Installationen beschrieben .

Mark Gemmill
quelle
5
Schön, das hat in der Tat funktioniert - obwohl ich eine --no-installOption markiert habe . Und Sie haben Recht mit den funky Dateinamen, aber zumindest die Dateien sind da .
John C
Als ich das letzte Mal nachgesehen habe, habe ich die --downloadOption, das Paket mit Abhängigkeiten herunterzuladen .
Mohammad Niknam
3
--download-cache ist veraltet. benutze pip install --download <dir> <pkg>
ostler.c
18
pip install --downloadist jetzt veraltet und wird aus Pip 10 entfernt . pip.pypa.io/en/latest/reference/pip_download/#overview . Verwenden Sie pip download somepackage.
Sнаđошƒаӽ
17
Insbesondere ist das neue Äquivalentpip download -d <dir> { -r requirements.txt | <packagename> }
rrauenza
56

Ich mache das immer, um die Pakete herunterzuladen:

pip install --download /path/to/download/to_packagename

ODER

pip install --download=/path/to/packages/downloaded -r requirements.txt

Und wenn ich all die Bibliotheken installieren möchte, die ich gerade heruntergeladen habe, mache ich Folgendes:

pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

ODER

pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


Aktualisieren

Um alle Pakete auf einem System zu installieren, können Sie sie alle exportieren requirement.txt, um sie auf einem anderen System zu installieren. Wir tun dies:

pip freeze > requirement.txt

Dann requirement.txtkann das wie oben zum Herunterladen verwendet werden, oder tun Sie dies, um sie von zu installieren requirement.txt:

pip install -r requirement.txt

REFERENZ: Pip Installer

sichere Kurve
quelle
6

In Version 7.1.2 lädt pip das Rad eines Pakets (falls verfügbar) mit folgenden Funktionen herunter:

pip install package -d /path/to/downloaded/file

Folgendes lädt eine Quelldistribution herunter:

pip install package -d /path/to/downloaded/file --no-binary :all:

Diese laden auch die Abhängigkeiten herunter, wenn pip sie kennt (z. B. wenn sie pip show packageaufgelistet sind).


Aktualisieren

Wie von den bekannten Anton Khodak , pip downloadwird Befehl 8. Dies bedeutet , In den obigen Beispielen seit Version bevorzugt , dass /path/to/downloaded/fileBedarf mit der Option gegeben werden -d, so ersetzt installmit downloadWerken.

jasaarim
quelle
Ich muss in Windows entwickeln und auf RH7 ohne Internetverbindung bereitstellen. Also lade ich die Quellpakete mit --no-binary herunter: all :. Dies schlägt jedoch fehl, wenn django-pyodbc-azure == 2.0.4.1 erfasst wird, da dieses Paket keine Quelle hat. Gibt es eine Möglichkeit, die Quelle herunterzuladen oder, falls dies nicht vorhanden ist, den Weehl herunterzuladen?
Whisperer
6

Verwenden Sie pip download <package1 package2 package n>diese Option, um alle Pakete einschließlich der Abhängigkeiten herunterzuladen

Verwenden Sie pip install --no-index --find-links . <package1 package2 package n>diese Option, um alle Pakete einschließlich der Abhängigkeiten zu installieren. Es werden alle Dateien abgerufen CWD. Es wird nichts heruntergeladen

Siva Kranthi Kumar
quelle
2

pip wheel ist eine weitere Option, die Sie in Betracht ziehen sollten:

pip wheel mypackage -w .\outputdir

Es lädt Pakete und ihre Abhängigkeiten in ein Verzeichnis herunter (standardmäßig das aktuelle Arbeitsverzeichnis), führt jedoch den zusätzlichen Schritt des Konvertierens von Quellpaketen in Räder aus.

Es unterstützt bequem Anforderungsdateien:

pip wheel -r requirements.txt -w .\outputdir

Fügen Sie das --no-depsArgument hinzu, wenn Sie nur die speziell angeforderten Pakete möchten:

pip wheel mypackage -w .\outputdir --no-deps
jpmc26
quelle
0

Ich würde es vorziehen (RHEL) - pip download package==version --no-deps --no-binary=:all:

Santosh K.
quelle
-1

Python-Pakete offline installieren

Für Fenster Benutzer:

Um in eine Datei herunterzuladen, öffnen Sie Ihr cmd und folgen Sie diesen Anweisungen:

cd <*the file-path where you want to save it*>

pip download <*package name*>

Das Paket und die Abhängigkeiten werden im aktuellen Arbeitsverzeichnis heruntergeladen.

So installieren Sie aus dem aktuellen Arbeitsverzeichnis:

Stellen Sie Ihren Ordner dort ein, wo Sie ihn als cwd heruntergeladen haben, und folgen Sie dann diesen Anweisungen:

pip install <*the package name which is downloded as .whl*> --no-index --find-links <*the file locaation where the files are downloaded*>

Dadurch wird nach Abhängigkeiten an diesem Speicherort gesucht.

Joseph Puthumana
quelle
Wenn Sie die Plattform nicht angeben, werden die Dateien für das aktuelle Betriebssystem heruntergeladen. Daher funktioniert dies nicht, wenn Sie die heruntergeladenen Dateien auf einem anderen Betriebssystem installieren
Prometheus