Bir paket için sıkıştırılmış dosyaları indirmek ve saklamak için Python'un pip'i nasıl kullanılır?


105

Ben kullanmak istiyorsanız pipbir paket (ve bağımlılıkları) indirmek, bunlarla komutu tutmak Bunu yapmanın bir yolu yoktur - (diyelim ki, django-socialregistration.tar.gz) indirilen olsun sıkıştırılmış dosyaların tümü?

Çeşitli komut satırı seçenekleri denedim, ama her zaman açmak ve görünüyor silmek ancak, yoksa zipfile alır - zipfile sadece orijinal paketinde, değil bağımlılıklar için.

Yanıtlar:


80

pip install --downloadkullanımdan kaldırıldı. 8.0.0 sürümünden başlayarak şu pip downloadkomutu kullanmalısınız :

 pip download <package-name>

3
ve indirilen paketler daha sonra nasıl kurulur?
— 2016

2
Bu en güncel cevaptır. Teşekkürler
— KJ50

4
@knoctepip install path-to-downloaded-package
— Anton Khodak

5
Bunu birkaç gün önce denedim ve sanırım indirilenleri kullanmak yerine internetten deps almaya çalıştı; IIRC, kullanmak zorundaydımsudo pip install <path-to-downloaded-package> --no-index --find-links `pwd`
— 2016

3
pip downloadAyrıca desteklediğini unutmayın, -r requirements.txtböylece hepsini internete bağlı bir makineden kolayca indirebilir, ardından çevrimdışı bir makineye kopyalayabilir ve yukarıdaki yorum yapanların bahsettiği gibi yükleyebilirsiniz
— Hawkins

114

--download-cacheSeçenek istediğini yapmalıdır:

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

Ancak, bunu test ettiğimde, ana paket indirildi, kaydedildi ve kuruldu, ancak bağımlılıklar ad olarak tam url yollarıyla kaydedildi - biraz can sıkıcı, ancak tüm tar.gzdosyalar oradaydı.

--downloadSeçenek ana paket ve bağımlılıklarını indirir ve bunlardan herhangi yüklemez. ( Not bu önceki sürüm 1.1--download vermedi seçenek değil bağımlılıkları indirin.)

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

pipKullanarak dokümantasyon hatları --downloadiçin hızlı ve yerel yüklemeler .


5
Güzel, bu gerçekten işe yaradı - bir --no-installseçeneği etiketlememe rağmen . Ve acayip dosya adları konusunda haklısın, ama en azından dosyalar orada .
— John C

En son kontrol ettiğimde, bağımlılık içeren--download paketi indir seçeneği .
— Mohammad Niknam

3
--download-cache kullanımdan kaldırıldı. pip install --download <dir> <pkg>
— ostler.c kullanın

18
pip install --downloadin şimdi kullanımdan kaldırıldı ve pip 10'dan kaldırılacak. pip.pypa.io/en/latest/reference/pip_download/#overview . Kullanın pip download somepackage.
— Sнаđошƒаӽ

18
Özellikle, yeni eşdeğerpip download -d <dir> { -r requirements.txt | <packagename> }
— rrauenza

57

Paketleri indirmek için her zaman bunu yapıyorum:

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

VEYA

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

Ve yeni indirdiğim tüm bu kitaplıkları kurmak istediğimde, şunu yapıyorum:

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

VEYA

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


Güncelleme

Ayrıca, bir sistemde kurulu olan tüm paketleri almak için requirement.txt, hepsini başka bir sistemde kurmak için kullanılacak olana aktarabilirsiniz, bunu yapıyoruz:

pip freeze > requirement.txt

Ardından, requirement.txtindirme için yukarıdaki gibi kullanılabilir veya bunları şuradan yüklemek için bunu yapın requirement.txt:

pip install -r requirement.txt

REFERANS: pip yükleyici


6

7.1.2 sürümünde pip, aşağıdakileri içeren bir paketin (varsa) çarkını indirir:

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

Aşağıdaki bir kaynak dağıtımını indirir:

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

Bunlar, pip farkındaysa bağımlılıkları da indirir (örneğin, eğer pip show packageonları listelerse).


Güncelleme

Tarafından belirtildiği gibi Anton Khodak , pip downloadkomut Yukarıdaki örneklerde sürüm 8 itibaren bu aracı tercih edilir /path/to/downloaded/fileihtiyaçları seçeneği ile verilecek -dböylece yerine installsahip downloadeserler.


Windows'ta geliştirmem ve RH7'de internet bağlantısı olmadan konuşmam gerekiyor. Bu yüzden kaynak paketlerini --no-binary: all: ile indiriyorum. Ancak, django-pyodbc-azure == 2.0.4.1 toplanırken bu paketin kaynağı olmadığı için bu başarısız olur. Kaynağı indirmenin bir yolu var mı yoksa bu yoksa weehl'i indirmenin bir yolu var mı?
— cwhisperer

6

pip download <package1 package2 package n>Bağımlılıklar dahil tüm paketleri indirmek için kullanın

Kullanım pip install --no-index --find-links . <package1 package2 package n>Bağımlılıklar dahil tüm paketleri kurmak için . Tüm dosyaları buradan alır CWD. Hiçbir şey indirmeyecek


2

pip wheel göz önünde bulundurmanız gereken başka bir seçenektir:

pip wheel mypackage -w .\outputdir

Paketleri ve bağımlılıklarını bir dizine (varsayılan olarak geçerli çalışma dizini) indirir, ancak herhangi bir kaynak paketini tekerleklere dönüştürme ek adımını gerçekleştirir.

Gereksinim dosyalarını rahatlıkla destekler:

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

--no-depsYalnızca özel olarak istenen paketleri istiyorsanız argümanı ekleyin :

pip wheel mypackage -w .\outputdir --no-deps

0

Tercih ederim (RHEL) - pip download package==version --no-deps --no-binary=:all:


-1

python paketlerini çevrimdışı yükleme

For Windows kullanıcıları:

To indirmek bir dosya halinde açmak cmd ve bu folow:

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

pip download <*package name*>

paket ve bağımlılıklar mevcut çalışma dizinine indirilecektir.

To yüklemek Geçerli çalışma dizini:

cwd olarak indirdiğiniz klasörünüzü ayarlayın ve ardından şunları izleyin:

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

bu, o konumdaki bağımlılıkları arayacaktır.


Platformu belirtmezseniz, mevcut işletim sistemi için dosyaları indirecektir. Bu nedenle, indirilen dosyaları başka bir işletim sistemine yüklerseniz bu işe yaramayacaktır
— Prometheus
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.