Bisakah saya memaksa pip untuk menginstal ulang versi saat ini?


507

Saya telah menemukan situasi di mana versi paket saat ini tampaknya tidak berfungsi dan membutuhkan instalasi ulang. Tetapi pip install -Utidak akan menyentuh paket yang sudah terbaru. Saya melihat bagaimana cara memaksa instalasi ulang dengan terlebih dulu menghapus (dengan pip uninstall) dan kemudian menginstal, tetapi apakah ada cara untuk hanya memaksa "pembaruan" ke versi nominal saat ini dalam satu langkah?


bagi mereka yang mencari untuk menginstal ulang pip itu sendiri (jika berhenti bekerja untuk beberapa alasan;)), jawabannya dapat ditemukan dalam ini SO q & a
nsof

Jawaban:


744
pip install --upgrade --force-reinstall <package>

Saat memutakhirkan, instal ulang semua paket meskipun sudah terbaru.

pip install -I <package>
pip install --ignore-installed <package>

Abaikan paket yang diinstal (sebagai gantinya menginstal ulang).


1
Adakah cara untuk memaksa overwrite saat menggunakan --target = flag? tidak ada yang bekerja untuk saya. Saya mendapatkan path tujuan sudah ada kesalahan.
radtek

@KeeganQuinn menurut Anda apa yang dimaksud oleh Karan dengan "Saat memutakhirkan" ...? Saya rasa begitu. Tetapi klarifikasi Anda tentu membantu saya.
The Red Pea

Bagaimana jika saya ingin membuat perubahan dalam zipline yang diinstal dalam proses pip install pipeline-live, dan cukup mengambil perubahan saya di zipline?
gseattle

Termasuk --upgradekapan --force-reinstallsedang digunakan tidak diperlukan pada pip 10.0, FYI: github.com/pypa/pip/issues/1139
cjerdonek

1
@ mrgloom Maksudnya using cachedhanya menggunakan file sumber yang di-cache di instalasi terakhir. Untuk memaksa unduh ulang gunakan --no-cache-dirbendera.
lcnittl

181

Anda mungkin ingin memiliki ketiga opsi: --upgrade dan --force-reinstallmemastikan menginstal ulang, sambil --no-depsmenghindari menginstal ulang dependensi.

$ sudo pip install --upgrade --no-deps --force-reinstall <packagename>

Kalau tidak, Anda mungkin mengalami masalah bahwa pip mulai mengkompilasi ulang Numpy atau paket besar lainnya.


1
Ini juga berfungsi untuk pemasangan offline, sedangkan jawaban yang dikecualikan tidak.
orodbhen

4
Ini adalah solusi yang lebih baik untuk paket-paket dengan sejumlah besar dependensi yang tidak perlu diinstal ulang.
Assil Ksiksi

1
sudosangat penting dalam kasus saya.
mrgloom

1
Mengapa kita perlu --upgradeketika kita menggunakan --force-reinstall?
mrgloom

@ FinnÅrupNielsen mengapa harus memutakhirkan versi saat ini? seperti yang saya mengerti di sini kami ingin menginstal ulang paket. Bagaimana jika <package-name>==<package-version>format digunakan?
mrgloom

33

Jika Anda ingin menginstal ulang paket yang ditentukan dalam file requirement.txt, tanpa memutakhirkan, maka instal ulang versi spesifik yang ditentukan dalam file requirement.txt:

pip install -r requirements.txt --ignore-installed

29
--force-reinstall

tampaknya tidak memaksa menginstal ulang menggunakan python2.7 dengan pip-1.5

Saya harus menggunakan

--no-deps --ignore-installed

20
Anda harus menentukan --upgradeselain --force-reinstall, atau itu tidak akan berpengaruh.
Keegan Quinn

6

Jika Anda memiliki file teks dengan banyak paket Anda perlu untuk menambahkan -r flag

pip install --upgrade --no-deps --force-reinstall -r requirements.txt

5

Dalam hal ini Anda perlu memaksa instalasi ulang pip itu sendiri yang dapat Anda lakukan:

python -m pip install --upgrade --force-reinstall pip

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.