Lebih
Menginstal paket tertentu dengan versi pip
I'm mencoba untuk menginstal versi 1.2.2 dari MySQL_python adaptor, menggunakan segar virtualenv dibuat dengan --ada-situs-paket
pilihan. Versi saat ini ditampilkan di PyPi adalah 1.2.3. Apakah ada cara untuk menginstal versi yang lebih tua? Saya menemukan sebuah artikel yang menyatakan bahwa ini harus di lakukan:
pip install MySQL_python==1.2.2
Ketika diinstal, namun, hal itu masih menunjukkan MySQL_python-1.2.3-py2.6.telur-info
pada situs paket. Ini adalah masalah khusus untuk paket ini, atau aku melakukan sesuatu yang salah?
1188
11
Pertama, saya melihat dua masalah dengan apa yang anda're coba lakukan. Karena anda sudah memiliki versi diinstal, anda harus uninstall saat ini sudah ada driver atau menggunakan
pip install-aku MySQL_python==1.2.2
Namun, anda'll segera mengetahui bahwa ini doesn't bekerja. Jika anda melihat pip's log instalasi, atau jika anda melakukan
pip install-Iv MySQL_python==1.2.2
anda'll menemukan bahwa PyPI URL link tidak bekerja untuk MySQL_python v1.2.2. Anda dapat memverifikasi ini di sini: http://pypi.python.org/pypi/MySQL-python/1.2.2Link download 404s dan mundur URL link yang kembali mengarahkan jauh karena sourceforge.net's baru-baru upgrade dan PyPI's basi URL.
Jadi untuk benar menginstal driver, anda bisa ikuti langkah-langkah berikut:
Anda bahkan dapat menggunakan berbagai versi dengan
pip menginstal
perintah. Sesuatu seperti ini:Salah satu cara seperti yang disarankan di post ini adalah untuk menyebutkan versi di
pip
sebagaipip install-Iv MySQL_python==1.2.2
yaitu Menggunakan
==
dan menyebutkan nomor versi untuk hanya menginstal yang versi.-I, --ignore-dipasang
mengabaikan sudah terinstall.Untuk menginstal tertentu python versi paket apakah itu adalah pertama kalinya, upgrade atau downgrade menggunakan:
MySQL_python versi 1.2.2 tidak tersedia jadi saya menggunakan versi yang berbeda. Untuk melihat semua paket yang tersedia versi dari indeks mengecualikan versi:
Saya percaya bahwa jika anda sudah memiliki paket ini diinstal, pip tidak akan ditimpa dengan versi lain. Menggunakan
aku
untuk mengabaikan versi sebelumnya.Kadang-kadang, versi yang telah diinstal sebelumnya di-cache.
Ia mengembalikan hal-hal berikut ini: Persyaratan sudah puas: bantal==5.2.0 di /home/ubuntu/anaconda3/lib/python3.6/situs-paket (5.2.0)
Kita dapat menggunakan-no-cache-dir bersama-sama dengan aku untuk menimpa ini
Karena ini tampaknya menjadi perubahan melanggar diperkenalkan di versi 10 pip, saya downgrade ke versi yang kompatibel:
Aku baru saja berlari ke dalam masalah ketika menggunakan
pip
's-I
bendera yang saya ingin mendokumentasikan suatu tempat:-I
akan tidak uninstall paket yang ada sebelum melanjutkan; itu hanya akan menginstalnya di atas yang lama. Ini berarti bahwa setiap file yang harus dihapus antara versi sebaliknya akan dibiarkan di tempat. Hal ini dapat menyebabkan perilaku aneh jika file-file tersebut berbagi nama dengan modul diinstal.Misalnya, let's mengatakan's sebuah paket bernama
paket
. Di dalam salah satu paket file, mereka menggunakanimpor datetime
. Sekarang, dalampackage@2.0.0
, ini poin untuk perpustakaan standardatetime
modul, tetapi dalampackage@3.0.0
, mereka menambahkan lokaldatetime.py
sebagai pengganti standar perpustakaan versi (untuk alasan apapun).Sekarang mari kita mengatakan bahwa saya menjalankan
pip menginstal paket==3.0.0
, tapi kemudian menyadari bahwa saya benar-benar ingin versi2.0.0
. Jika sekarang saya menjalankanpip install-I paket==2.0.0
, tuadatetime.py
file tidak akan dihapus, jadi setiap panggilan untukmengimpor datetime
akan mengimpor salah modul.Dalam kasus saya, ini diwujudkan dengan aneh kesalahan sintaks karena versi yang lebih baru dari paket menambahkan sebuah file yang hanya kompatibel dengan Python 3, dan ketika saya downgrade paket versi untuk dukungan Python 2, saya terus mengimpor Python-3-satunya modul.
Berdasarkan hal ini, saya berpendapat bahwa menghapus instalasi paket lama selalu lebih baik untuk menggunakan
aku
ketika memperbarui paket yang diinstal versi.Ini perintah di bawah ini bekerja untuk saya
Python versi 2.7
paket - python-jenkins
perintah -
$ pip menginstal 'python-jenkins>=1.1.1'
Ada 2 cara anda dapat menginstal setiap paket dengan versi:- A). pip install-Iv paket-nama == versi B). pip install-v paket-nama == versi
Untuk
Di sini, jika anda're menggunakan opsi-I saat menginstal(ketika anda don't tahu jika paket sudah terinstall) (seperti 'pip install-Iv pyreadline == 2.* 'atau sesuatu), anda akan menginstal paket terpisah dengan paket yang ada memiliki beberapa versi yang berbeda.
B
2.dan kemudian melihat apa yang's sudah dipasang oleh pip daftar
3.jika daftar paket berisi paket yang ingin anda install dengan versi tertentu maka pilihan yang lebih baik adalah untuk meng-uninstall paket ini versi pertama, dengan pip uninstall paket-nama
4.Dan sekarang anda dapat pergi ke depan untuk menginstal paket yang sama dengan versi tertentu, oleh pip install-v paket-nama==versi misalnya pip install-v pyreadline == 2.*
Jika anda ingin update ke versi terbaru dan anda don't tahu apa versi terbaru anda dapat mengetik.
pip menginstal MySQL_python-upgrade
Ini akan memperbarui MySQL_python untuk versi terbaru yang tersedia, anda dapat menggunakan untuk setiap paket lain versi.