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?

orome
sumber
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).

KGo
sumber
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.

Finn Årup Nielsen
sumber
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
Davy
sumber
29
--force-reinstall

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

Saya harus menggunakan

--no-deps --ignore-installed
anema
sumber
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
Daniel
sumber
5

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

python -m pip install --upgrade --force-reinstall pip
Jorge Cribb
sumber