<package> gereksinimini karşılayan bir sürüm bulunamadı


139

Aşağıdaki requirements.txtdosyayı kullanarak Ubuntu 12.04'e birkaç Python paketi yüklüyorum :

numpy>=1.8.2,<2.0.0
matplotlib>=1.3.1,<2.0.0
scipy>=0.14.0,<1.0.0
astroML>=0.2,<1.0
scikit-learn>=0.14.1,<1.0.0
rpy2>=2.4.3,<3.0.0

ve bu iki komut:

$ pip install --download=/tmp -r requirements.txt
$ pip install --user --no-index --find-links=/tmp -r requirements.txt

(birincisi paketleri indirir ve ikincisi paketleri yükler).

İşlem sıklıkla hatayla durdurulur:

  Could not find a version that satisfies the requirement <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2)) (from versions: )
No matching distribution found for <package> (from matplotlib<2.0.0,>=1.3.1->-r requirements.txt (line 2))

hangi ile elle düzeltmek:

pip install --user <package>

ve sonra ikinci pip installkomutu tekrar çalıştırın .

Ancak bu yalnızca söz konusu paket için geçerlidir. İkinci pip installkomutu tekrar çalıştırdığımda, işlem artık gerekli başka bir paket hakkında şikayet ediyor ve işlemi tekrarlamam gerekiyor, yani: yeni gerekli paketi manuel olarak (yukarıdaki komutla) yükleyin ve sonra ikinci pip installkomutu çalıştırın .

Şimdiye kadar elle yüklemek zorunda kalmıştım six, pytz, noseve şimdi ihtiyacı hakkında şikayetçi mock.

Manuel olarak tek tek yapmak zorunda kalmamam için gerekli tüm bağımlılıkları pipotomatik olarak yüklemeyi söylemenin bir yolu var mı ?

Ekle : Bu yalnızca Ubuntu 12.04 BTW'de olur. Ubuntu 14.04'te dosyaya pip installuygulanan komutlar requirements.txtsorunsuz çalışır.


1
Bazen Django projeniz yerel demleme paketlerine bağlı olabilir. Bunların kurulu olup olmadığını bir kez daha kontrol edin!
James111

aynı sorunu vardı, 'python -m pip install flask' ile bunu yükleyebildim
Freelancer

Yanıtlar:


47

Bu yaklaşım (bir dizindeki tüm bağımlılıklara sahip olan ve bir dizinden indirmeyen) yalnızca dizin tüm paketleri içerdiğinde çalışır. Dizin bu nedenle tüm bağımlılıkları değil, aynı zamanda bu bağımlılıkların bağlı olduğu tüm paketleri de içermelidir (örn . six, pytzVb.).

Bu nedenle, bunları manuel olarak dahil etmelisiniz requirements.txt(ilk adım onları açıkça indirecektir) veya PyPI kullanarak tüm paketleri yüklemeniz ve ardından pip freeze > requirements.txtgerekli tüm paketlerin listesini saklamanız gerekir.


Bu yüzden, tüm gereksinimlerin hangileri olduğunu bulmanın tek yolu, freezeçalışan bir kurulumda yüklü paketlere ve oradaki her şeyi requirements.txtdosyaya eklemek mi?
Gabriel

2
@ Gabriel: şu anda evet, setup.pyihtiyaç duydukları bağımlılıkları içeren bir dosya çalıştırarak yüklü Python paketi . Python paketi , dosyalardaki keyfi kodu çalıştırmadan gerekli tüm paketlerin bir listesini toplamanızı sağlayan tekerlek dosyaları ( pythonwheels.com ) haline geldiğinde bu daha iyi olmalıdır setup.py.
Simeon Visser

1
Simeon açıklaması için teşekkürler. Sakıncası yoksa bir şey daha var: Bu neden Ubuntu 14.04'te değil ama Ubuntu 12.04'te oluyor?
Gabriel

4
@ Gabriel: Emin değilim - deneyimlerime göre pip, kurulacak bir paket bulamadığında her zaman iptal olur. Söylenen pipşey aktif olarak geliştiriliyor, bu yüzden birlikte çalışmadığım bir sürümünüz olabilir.
Simeon Visser

@SimeonVisser, "[tekerlekler] keyfi kod çalıştırmadan gerekli tüm paketlerin bir listesini toplamanıza izin verir", ilginç, zihin paylaşımı bunu nasıl yapabileceğinizi (şimdiye kadar)?
sschuberth

39

Python3'ü kurdum ama / usr / bin / python'daki python'um hala eski 2.7 versiyonuydu

Bu (çalıştı <pkg>oldu pyserialbenim durumumda):

python3 -m pip install <pkg>

1
Bu, python_requires='>=3.0'
kurulum araçlarında

11

2 saatlik aramadan sonra, sadece bir komut satırı ile düzeltmenin bir yolunu buldum. Paketin sürümünü bilmeniz gerekir (PACKAGE sürümünü arayın).

Komut:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION


4

Aşağıdaki komutu kullanarak şişeyi powershell üzerinden kurmayı deneyin.

pip install --isolated Flask

Bu, kurulumun ortam değişkenlerinden ve kullanıcı yapılandırmasından kaçınmasını sağlayacaktır.


3

Her zaman değil, ancak bazı durumlarda paket zaten var. Örneğin - getpass. "Pip listesi" tarafından listelenmez, ancak içe aktarılabilir ve kullanılabilir:

resim açıklamasını buraya girin

Ben getpass pip install denerseniz aşağıdaki hatayı alıyorum: "Gereksinim getpass karşılayan bir sürüm bulunamadı"



1

İşyerinde bu sorunla karşı karşıyaysanız. Bu sizin için bir çözüm olabilir.

pip install -U <package_name> --user --proxy=<your proxy>


-7

Komut İstemi'ni kullanın ve ardından Yönetici olarak çalıştır'ı seçin.

Pip sürümünü yükseltin

PIP'yi yükseltmek için bu komutu yazın ve Enter tuşuna basın: -

python.exe -m pip install - yükseltme pip

Python yoluna geri dön C: \ Users \ Jack \ AppData \ Local \ Programs \ Python \ Python37 \ Scripts

Jupyter dizüstü bilgisayar yazın

Http: // localhost: 8888 / undefined / tree dizinine yönlendirileceksiniz - Jupyter Ana Sayfa

Umarım yardımcı olur !!!!!!!!!!!


2
Jupyter'ın bununla ne ilgisi var ??
Bzazz

pip yükseltme bağımlılıkları nasıl çözebilir? Çağıran dizinde bağımlılıklar gerektirir.
Rizwan Javid

-8

yardımcı olabilir

sudo pip kurulum tekerleği == 0.29.0


4
Üzgünüm .. Çince veya başka bir Asya dili okumuyorum .. Tavsiye bağlantısı gelecekte kırılabilir ... lütfen gerekli bilgileri buraya gönderin. Yayınlandığı gibi düşük kaliteli cevabı bağlamsız.
ZF007

1

6
Kod tüm geliştiriciler tarafından anlaşılabilir ve Japonca miktarı hem minimum hem de biraz daha fazladır, bu da aşağıdaki kodu tanıtan başlıklardır (sizin için çok zorlayıcıysa çevirin, ancak neler olduğunu anlamak için bunu yapmanız gerekmez). Kod örnekleri açık olduğu ve kullanılan yabancı dile tamamen bağımlı olmadığı sürece, İngilizce dışındaki dillerle ilgili bir sorun olmamalıdır.
rg88

6
@ rg88 Bir yorum için iyi olabilir (belki bir uyarı ile), ancak Yığın Taşması ile ilgili bir cevap kendi kendine yeten ve ikna edici olmalıdır.
Üçlü
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.