Tidak dapat menemukan versi yang memenuhi persyaratan <paket>

153

Saya menginstal beberapa paket Python di Ubuntu 12.04 menggunakan requirements.txtfile berikut :

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

dan dua perintah ini:

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

(yang pertama mendownload paket dan yang kedua menginstalnya).

Prosesnya sering berhenti dengan kesalahan:

  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))

yang saya perbaiki secara manual dengan:

pip install --user <package>

lalu jalankan kembali pip installperintah kedua .

Tapi itu hanya bekerja untuk itu paket tertentu. Ketika saya menjalankan pip installperintah kedua lagi, proses berhenti sekarang mengeluh tentang paket lain yang diperlukan dan saya perlu mengulangi prosesnya lagi, yaitu: instal paket baru yang diperlukan secara manual (dengan perintah di atas) dan kemudian jalankan pip installperintah kedua .

Sejauh ini saya sudah menginstal secara manual six, pytz, nose, dan sekarang itu mengeluh tentang membutuhkan mock.

Apakah ada cara untuk mengetahui pipuntuk menginstal otomatis semua dependensi yang diperlukan sehingga saya tidak harus melakukannya secara manual satu per satu?

Tambahkan : Ini hanya terjadi di Ubuntu 12.04 BTW. Di Ubuntu 14.04, pip installperintah yang diterapkan pada requirements.txtfile berfungsi tanpa masalah.

Gabriel
sumber
1
Kadang-kadang proyek Django Anda mungkin bergantung pada paket minuman lokal. Periksa kembali apakah Anda telah menginstal ini!
James111
saya memiliki masalah yang sama, dengan 'python -m pip install flask' saya dapat menginstalnya
Freelancer

Jawaban:

51

Pendekatan ini (memiliki semua dependensi dalam direktori dan tidak mengunduh dari indeks) hanya berfungsi jika direktori berisi semua paket. Oleh karena itu, direktori harus berisi semua dependensi tetapi juga semua paket tempat dependensi tersebut bergantung (misalnya six,, pytzdll).

Oleh karena itu, Anda harus memasukkan ini secara manual requirements.txt(sehingga langkah pertama mendownloadnya secara eksplisit) atau Anda harus menginstal semua paket menggunakan PyPI dan kemudian pip freeze > requirements.txtmenyimpan daftar semua paket yang diperlukan.

Simeon Visser
sumber
Jadi satu-satunya cara untuk mengetahui yang mana semua persyaratannya adalah dengan freezepaket yang diinstal dalam pengaturan kerja dan kemudian menambahkan semua yang ada di sana ke requirements.txtfile?
Gabriel
2
@Gabriel: saat ini ya karena banyak paket Python yang diinstal dengan menjalankan setup.pyfile yang berisi dependensi yang mereka butuhkan. Ini akan menjadi lebih baik setelah paket Python menjadi file roda ( pythonwheels.com ) yang memungkinkan Anda mengumpulkan daftar semua paket yang diperlukan tanpa mengeksekusi kode arbitrer dalam setup.pyfile.
Simeon Visser
1
Terima kasih atas penjelasannya Simeon. Satu hal lagi jika Anda tidak keberatan: mengapa ini tidak terjadi di Ubuntu 14.04 tetapi di Ubuntu 12.04?
Gabriel
4
@Gabriel: Saya tidak yakin - menurut pengalaman saya pipselalu dibatalkan ketika tidak dapat menemukan paket untuk diinstal. Yang sedang berkata pipsedang dikembangkan secara aktif sehingga bisa jadi Anda memiliki versi yang belum saya gunakan.
Simeon Visser
2
@SimeonVisser, "[roda] memungkinkan Anda mengumpulkan daftar semua paket yang diperlukan tanpa mengeksekusi kode arbitrer", menarik, berbagi pikiran bagaimana sebenarnya melakukannya (sekarang)?
sschuberth
45

Saya telah menginstal python3 tetapi python saya di / usr / bin / python masih versi 2.7 yang lama

Ini bekerja ( <pkg>adalah pyserialdalam kasus saya):

python3 -m pip install <pkg>
perut
sumber
1
ini terjadi ketika di setuptools ada python_requires='>=3.0'sebagai persyaratan
Juan-Kabbali
12

Setelah 2 jam mencari, saya menemukan cara untuk memperbaikinya hanya dengan satu baris perintah. Anda perlu mengetahui versi paketnya (Cukup cari versi PAKET).

Perintah:

python3 -m pip install --pre --upgrade PACKAGE==VERSION.VERSION.VERSION
Jagd_Panzer_E100
sumber
10

Perintah di bawah ini berhasil untuk saya -

python -m pip install flask
Freelancer
sumber
4

Tidak selalu, tetapi dalam beberapa kasus paket tersebut sudah ada. Misalnya - getpass. Ini tidak terdaftar oleh "daftar pip" tetapi dapat diimpor dan digunakan:

masukkan deskripsi gambar di sini

Jika saya mencoba memasang pip getpass, saya mendapatkan kesalahan berikut: "Tidak dapat menemukan versi yang memenuhi persyaratan getpass"

svinec.dll
sumber
4

Coba instal flask melalui PowerShell menggunakan perintah berikut.

pip install --isolated Flask

Ini akan memungkinkan penginstalan untuk menghindari variabel lingkungan dan konfigurasi pengguna.

pengguna3782287
sumber
2

Jika Anda menghadapi masalah ini di tempat kerja. Ini mungkin solusi untuk Anda.

pip install -U <package_name> --user --proxy=<your proxy>
pk786
sumber
2

Meskipun itu tidak benar-benar menjawab pertanyaan khusus ini. Orang lain mendapat pesan kesalahan yang sama dengan kesalahan ini.

Bagi mereka yang seperti saya awal lupa -r: Gunakan pip install -r requirements.txtyang -rsangat penting untuk perintah.

Jawaban asli:

https://stackoverflow.com/a/42876654/10093070

Chiel
sumber
1

Saya mendapat kesalahan ini saat menginstal awsclidi Windows 10 di anaconda (python 3.7). Saat memecahkan masalah, saya pergi ke jawaban https://stackoverflow.com/a/49991357/6862405 dan kemudian ke https://stackoverflow.com/a/54582701/6862405 . Akhirnya menemukan bahwa saya perlu menginstal perpustakaan PyOpenSSL, cryptography, enum34, idnadan ipaddress. Setelah menginstal ini (menggunakan pip installperintah sederhana ), saya dapat menginstal awscli.

Ankit Seth
sumber
-8

mungkin membantu

sudo pip install wheel == 0.29.0

Trisha Chetani
sumber
4
Maaf .. Saya tidak membaca bahasa Mandarin atau bahasa Asia lainnya .. Tautan rujukan mungkin rusak di masa mendatang ... harap posting hal penting di sini. Seperti yang diposting, jawaban berkualitas rendah tanpa konteks.
ZF007
1
Tautan rujukan dalam bahasa Jepang ... harap pertimbangkan untuk berbagi tautan dalam bahasa Inggris
javidazac
6
Kode ini dapat dimengerti oleh semua pengembang dan jumlah bahasa Jepangnya minimal dan sedikit lebih banyak dari judul yang memperkenalkan kode berikut (terjemahkan jika terlalu menantang bagi Anda tetapi Anda benar-benar tidak perlu melakukannya untuk memahami apa yang sedang terjadi). Seharusnya tidak ada masalah dengan bahasa selain bahasa Inggris yang digunakan selama contoh kodenya jelas dan tidak sepenuhnya bergantung pada bahasa asing yang digunakan.
rg88
6
@ rg88 Tidak apa-apa untuk memberikan komentar (mungkin dengan peringatan) tetapi jawaban di Stack Overflow harus mandiri dan meyakinkan.
tripleee
tidak berhubungan dengan bahasa jepang, tapi apa hubungannya dengan pertanyaan?
KansaiRobot
-8

Gunakan Prompt Perintah, lalu pilih Jalankan sebagai administrator.

Tingkatkan versi pip

Untuk memutakhirkan PIP, ketik perintah ini, lalu tekan Enter: -

python.exe -m pip install --upgrade pip

Kembali ke jalur python C: \ Users \ Jack \ AppData \ Local \ Programs \ Python \ Python37 \ Scripts

Ketik notebook jupyter

Anda akan dialihkan ke http: // localhost: 8888 / undefined / tree - Halaman Beranda Jupyter

Semoga membantu !!!!!!!!!!!

arup.dutta22
sumber
2
Apa hubungan jupyter dengan ini ??
Bzazz
bagaimana cara mengupgrade pip menyelesaikan dependensi? Ini membutuhkan dependensi dalam direktori pemanggil.
Rizwan Javid