Bagaimana cara saya memperbarui paket Python?


234

Saya menjalankan Ubuntu 9:10 dan paket yang disebut M2Crypto diinstal (versi 0.19.1). Saya perlu mengunduh, membangun, dan menginstal versi terbaru dari paket M2Crypto (0.20.2).

Paket 0.19.1 memiliki file di sejumlah lokasi termasuk (/ usr / share / pyshared dan /usr/lib/pymodules.python2.6).

Bagaimana saya bisa sepenuhnya menghapus versi 0.19.1 dari sistem saya sebelum menginstal 0.20.2?

Jawaban:


54

Anda mungkin ingin melihat ke manajer paket Python seperti pip . Jika Anda tidak ingin menggunakan manajer paket Python, Anda harus dapat mengunduh M2Crypto dan membangun / mengkompilasi / menginstal melalui instalasi lama.


1
Terima kasih. Apa yang Anda katakan berhasil. Saya membangun dan menginstal 0.20.2 tanpa perlu menghapus 0.19.1.
thompson

461

Cara terbaik yang saya temukan adalah menjalankan perintah ini dari terminal

sudo pip install [package_name] --upgrade

sudo akan meminta untuk memasukkan kata sandi root Anda untuk mengkonfirmasi tindakan.


Catatan: Beberapa pengguna mungkin memasang pip3 sebagai gantinya. Dalam hal itu, gunakan

sudo pip3 install [package_name] --upgrade

4
Dan jika Anda menggunakan proxy tanpa autentikasi: sudo pip install [package] --upgrade --proxy = address: port
lmsasu

32
Saya datang ke sini untuk jawaban ini. Saya mencoba pip updatedan pip upgradedan putus asa sampai saya melihat di --upgradesini. Mengapa mereka tidak menambahkan pip upgradeperintah?
Lars Blumberg

9
Ini memang fitur yang tersembunyi.
otocan

1
Untuk pengguna Windows: sudotidak diperlukan.
Stevoisiak

2
Ini harus menjadi jawaban # 1
Cord Kaldemeyer

48

Untuk secara otomatis memutakhirkan semua paket yang sudah usang (yang diinstal menggunakan pip), jalankan saja skrip di bawah,

pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

Di sini, pip list --outdatedakan mencantumkan semua paket tanggal keluar dan kemudian kita pipa untuk awk, sehingga hanya akan mencetak nama. Kemudian, $(...)akan membuatnya menjadi variabel dan kemudian, semuanya dilakukan secara otomatis. Pastikan Anda memiliki izin. (Taruh sudosebelum pip jika Anda bingung) Saya akan menulis skrip bernama, pip-upgrade Kode di bawah,

#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade

Kemudian gunakan baris skrip berikut untuk menyiapkannya:

sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/

Lalu, tekan saja pip-upgradedan voila!


saya mendapat kesalahan sintaks yang menunjuk ke braket terakhir di:awk: cmd. line:1: { print $1 })
TT--

7
@TT Versi yang lebih baru pipmengharuskan Anda menggunakan --format=legacyopsi, yaitu pip list --outdated --format=legacy,. FYI everyone: memperbarui semua modul melalui pip bisa sangat berbahaya di banyak distro Linux. Banyak dari mereka menyediakan modul python spesifik melalui paket distro dan beberapa distro tersebut (khususnya RHEL) dapat rusak jika Anda memperbarui kotoran ... belum lagi fakta bahwa jika Anda memperbarui melalui pip, paket distro mungkin mengembalikan perubahan Anda pada pembaruan di masa depan.
rsaw

terima kasih @rsaw. Dia benar, Anda harus menjalankan perintah pip Anda dengan opsi --user
Fahim Ferdous

1
Saya suka jawaban ini, meskipun saya mengerti bahayanya memperbarui semuanya secara otomatis. Pokoknya, karena warisan tidak digunakan lagi di pip 19.0 pip instal $ (daftar pip --outdated --format = kolom | grep -v "Paket" | grep -v - ---- | awk '{print $ 1}') - -upgrade
mike v

2
Untuk dapat bekerja pada Ubuntu 18.04 venv beradaptasi sebagai berikut:pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade
Alexander Remesch

34
  1. Melalui command prompt windows, jalankan: pip list --outdated Anda akan mendapatkan daftar paket yang sudah usang.
  2. Jalankan: pip install [package] --upgrade Ini akan memutakhirkan [package]dan menghapus versi sebelumnya.

Untuk memperbarui pip:

py -m pip install --upgrade pip

Sekali lagi, ini akan menghapus versi pip sebelumnya dan akan menginstal versi terbaru pip.


29
  • Metode 1: Tingkatkan secara manual satu per satu

pip install package_name -U
  • Metode 2: Tingkatkan semuanya sekaligus (kembalinya peluang tinggi jika beberapa paket gagal ditingkatkan

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • Metode 3: Tingkatkan satu per satu menggunakan loop

for i in  $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done


9

Gunakan pipupgrade !

$ pip install pipupgrade
$ pipupgrade --latest --interactive

pipupgrade membantu Anda meningkatkan sistem Anda, lokal atau paket dari requirements.txtfile! Itu juga secara selektif meningkatkan paket yang tidak merusak perubahan. Kompatibel dengan Python2.7 +, Python3.4 + dan pip9 +, pip10 +, pip18 +.

masukkan deskripsi gambar di sini

CATATAN: Saya penulis alat ini.


1
Setiap kali saya menggunakan alat ini saya mendapat respons "[0; 93m Memeriksa ... [0m" dan hasilnya tidak melakukan apa-apa. Apakah saya salah menggunakannya?
Violatic

Saya menggunakan Mac dengan MacPorts. Dengan Python 3.7 pipupgrade hanya berfungsi untuk 5 dari 50 paket, untuk sisanya saya harus menggunakan ini: for i in pip3.7 list --outdated | sed -n -e '3,$s/ .*//p'; lakukan pip3.7 install --upgrade $ i; dilakukan
Michael Dreher

4

Bagaimana paket awalnya diinstal? Jika melalui apt, Anda bisa melakukannyaapt-get remove python-m2crypto

Jika Anda menginstalnya melalui easy_install, saya cukup yakin satu-satunya cara adalah dengan hanya membuang file di bawah lib, dibagikan, dll.

Rekomendasi saya di masa depan? Gunakan sesuatu seperti pip untuk menginstal paket Anda. Selain itu, Anda bisa mencari sesuatu yang disebut virtualenv sehingga paket Anda disimpan berdasarkan per-lingkungan, bukan hanya di root.

Dengan pip, cukup mudah:

pip install m2crypto

Tetapi Anda juga dapat menginstal dari git, svn, dll. Dengan alamat yang benar. Ini semua dijelaskan dalam dokumentasi pip


Cara dia menjelaskan di mana file diinstal menunjukkan bahwa paket itu diinstal menggunakan manajer paket apt - karena (pada Debian AFAIK) dia akan menginstal paket python di bawah 2 lokasi yang dia daftarkan - / share / pyshared / .. adalah untuk kode bersama lintas versi dan / usr / lib / .. untuk bagian-bagian tertentu versi. mudah-instal / pip di sisi lain akan menggunakan / usr / local / lib / .. - jadi seperti yang Anda katakan - hanya menghapus apt-get akan melakukannya.
Basel Shishani


3

Dalam buku catatan Juptyer, cara yang sangat sederhana adalah

!pip install <package_name> --upgrade

Jadi, Anda hanya perlu mengganti dengan nama paket yang sebenarnya.


2

Dapatkan semua paket yang ketinggalan jaman dan buat file batch dengan perintah berikut pip instal xxx --upgrade untuk setiap paket yang sudah usang

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.