Saya mencoba menginstal versi 1.2.2 dari adaptor MySQL_python, menggunakan virtualenv baru yang dibuat dengan --no-site-packages
opsi. Versi saat ini ditunjukkan dalam PyPi adalah 1.2.3 . Apakah ada cara untuk menginstal versi yang lebih lama? Saya menemukan sebuah artikel yang menyatakan bahwa ini harus dilakukan:
pip install MySQL_python==1.2.2
Ketika diinstal, bagaimanapun, itu masih ditampilkan MySQL_python-1.2.3-py2.6.egg-info
dalam paket situs. Apakah ini masalah khusus untuk paket ini, atau apakah saya melakukan sesuatu yang salah?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Jawaban:
TL; DR:
pip install -Iv
(yaitupip install -Iv MySQL_python==1.2.2
)Pertama, saya melihat dua masalah dengan apa yang Anda coba lakukan. Karena Anda sudah memiliki versi yang diinstal, Anda harus menghapus instalasi driver yang ada saat ini atau menggunakan
pip install -I MySQL_python==1.2.2
Namun, Anda akan segera mengetahui bahwa ini tidak berhasil. Jika Anda melihat log instalasi pip, atau jika Anda melakukannya,
pip install -Iv MySQL_python==1.2.2
Anda akan menemukan bahwa tautan URL PyPI tidak berfungsi untuk MySQL_python v1.2.2. Anda dapat memverifikasi ini di sini: http://pypi.python.org/pypi/MySQL-python/1.2.2Tautan pengunduhan 404s dan tautan URL fallback mengarahkan ulang secara tak terbatas karena peningkatan terbaru sourceforge.net dan URL basi PyPI.
Jadi untuk menginstal driver dengan benar, Anda dapat mengikuti langkah-langkah ini:
sumber
Anda bahkan dapat menggunakan rentang versi dengan
pip install
perintah. Sesuatu seperti ini:Dan jika paket sudah diinstal dan Anda ingin menurunkannya tambahkan
--force-reinstall
seperti ini:sumber
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Salah satu cara, seperti yang disarankan dalam posting ini , adalah menyebutkan versi
pip
sebagai:yaitu Gunakan
==
dan sebutkan nomor versi untuk menginstal hanya versi itu.-I, --ignore-installed
mengabaikan paket yang sudah diinstal.sumber
pip list
tidak menyadarinya, tetapiconda list
(dan akan menampilkan versi paket yang berbeda). Ini juga benar-benar membingungkan Pycharm .Untuk menginstal versi paket python tertentu apakah ini pertama kali, upgrade atau gunakan downgrade:
MySQL_python versi 1.2.2 tidak tersedia jadi saya menggunakan versi yang berbeda. Untuk melihat semua versi paket yang tersedia dari indeks, tidak termasuk versi:
sumber
Saya percaya bahwa jika Anda sudah memiliki paket yang diinstal, pip tidak akan menimpanya dengan versi lain. Gunakan
-I
untuk mengabaikan versi sebelumnya.sumber
unset PYTHONPATH
agar tidakpip
melihat perpustakaan yang sudah diinstal sebelumnyaKadang-kadang, versi yang diinstal sebelumnya di-cache.
Ini mengembalikan yang berikut:
Persyaratan sudah puas: pillow == 5.2.0 di /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Kita dapat menggunakan --no-cache-dir bersama dengan -I untuk menimpa ini
sumber
Karena ini tampaknya merupakan perubahan besar yang diperkenalkan pada versi 10 dari pip, saya menurunkan versi ke versi yang kompatibel:
Perintah ini memberitahu pip untuk menginstal versi modul yang lebih rendah dari versi 10. Lakukan ini di virutalenv sehingga Anda tidak mengacaukan pemasangan situs Anda dari Python.
sumber
Saya baru-baru berlari ke masalah ketika menggunakan
pip
's-I
bendera yang saya ingin suatu tempat dokumen:-I
tidak akan menghapus paket yang ada sebelum melanjutkan; itu hanya akan menginstalnya di atas yang lama. Ini berarti bahwa semua file yang harus dihapus antar versi akan dibiarkan di tempatnya. Ini dapat menyebabkan perilaku aneh jika file-file tersebut berbagi nama dengan modul lain yang diinstal.Sebagai contoh, katakanlah ada paket bernama
package
. Dalam salah satupackage
file, mereka gunakanimport datetime
. Sekarang, dalam[email protected]
, ini menunjuk kedatetime
modul perpustakaan standar , tetapi dalam[email protected]
, mereka menambahkan lokaldatetime.py
sebagai pengganti untuk versi perpustakaan standar (untuk alasan apa pun).Sekarang katakanlah saya menjalankan
pip install package==3.0.0
, tetapi kemudian menyadari bahwa saya benar-benar menginginkan versi2.0.0
. Jika sekarang saya jalankanpip install -I package==2.0.0
, file lamadatetime.py
tidak akan dihapus, jadi panggilan apa pun untukimport datetime
akan mengimpor modul yang salah.Dalam kasus saya, ini dimanifestasikan dengan kesalahan sintaksis aneh karena versi yang lebih baru dari paket menambahkan file yang hanya kompatibel dengan Python 3, dan ketika saya menurunkan versi paket untuk mendukung Python 2, saya terus mengimpor modul hanya Python-3.
Berdasarkan ini, saya berpendapat bahwa menghapus paket lama selalu lebih baik daripada menggunakan
-I
ketika memperbarui versi paket yang diinstal.sumber
Perintah di bawah ini bekerja untuk saya
Versi Python - 2.7
paket - python-jenkins
perintah -
$ pip install 'python-jenkins>=1.1.1'
sumber
Ada 2 cara Anda dapat menginstal paket apa pun dengan versi: - A). pip install -Iv package-name == versi B). pip install -v package-name == versi
Untuk sebuah
Di sini, jika Anda menggunakan opsi -I saat menginstal (ketika Anda tidak tahu apakah paket sudah diinstal) (seperti 'pip install -Iv pyreadline == 2. *' atau sesuatu), Anda akan menginstal yang baru paket terpisah dengan paket yang sama memiliki beberapa versi yang berbeda.
Untuk B
2.dan kemudian lihat apa yang sudah diinstal oleh daftar
3.jika daftar paket berisi paket yang ingin Anda instal dengan versi spesifik maka opsi yang lebih baik adalah menghapus instalasi paket versi ini terlebih dahulu, dengan pip uninstall paket-nama
4.Dan sekarang Anda dapat melanjutkan untuk menginstal ulang paket yang sama dengan versi tertentu, dengan pip instal -v paket-nama == versi misalnya pip instal -v pyreadline == 2. *
sumber
Jika Anda ingin memperbarui ke versi terbaru dan Anda tidak tahu apa versi terbaru yang bisa Anda ketik.
pip instal MySQL_python --upgrade
Ini akan memperbarui MySQL_python untuk versi terbaru yang tersedia, Anda dapat menggunakan untuk versi paket lainnya.
sumber