Bir Python paketini nasıl güncelleyebilirim?


234

Ubuntu 9:10 çalıştırıyorum ve M2Crypto adlı bir paket yüklü (sürüm 0.19.1). M2Crypto paketinin (0.20.2) en son sürümünü indirmem, derlemem ve yüklemem gerekiyor.

0.19.1 paketinde (/ usr / share / pyshared ve /usr/lib/pymodules.python2.6) dahil olmak üzere çeşitli konumlarda dosyalar bulunur.

0.20.2'yi yüklemeden önce 0.19.1 sürümünü sistemimden nasıl tamamen kaldırabilirim?

Yanıtlar:


54

Pip gibi bir Python paket yöneticisine bakmak isteyebilirsiniz . Bir Python paket yöneticisi kullanmak istemiyorsanız, M2Crypto'yu indirebilmeniz ve eski kurulum üzerinden derleyebilmeniz / derleyebilmeniz / kurabilmeniz gerekir.


1
Teşekkürler. Söyledikleriniz işe yaradı. 0.19.1'i kaldırmaya gerek kalmadan 0.20.2'yi oluşturdum ve yükledim.
thompson

461

Bulduğum en iyi yol bu komutu terminalden çalıştırmak

sudo pip install [package_name] --upgrade

sudo işlemi onaylamak için kök şifrenizi girmenizi isteyecektir.


Not: Bazı kullanıcılara bunun yerine pip3 yüklenmiş olabilir. Bu durumda,

sudo pip3 install [package_name] --upgrade

4
Kimlik doğrulaması olmadan bir proxy kullanıyorsanız: sudo pip install [package] --upgrade --proxy = address: port
lmsasu

32
Bu cevap için buraya geldim. Buraya gelene kadar denedim pip updateve pip upgradeçaresizdim --upgrade. Neden bir pip upgradekomut eklemiyorlar?
Lars Blumberg

9
Bu gerçekten çok gizli bir özellik.
otocan

1
Windows kullanıcıları için: sudogerekli değildir.
Stevoisiak

2
Bu cevap # 1 olmalıdır
Cord Kaldemeyer

48

Tüm eski paketleri otomatik olarak yükseltmek için (pip kullanılarak yüklenen), aşağıdaki komut dosyasını çalıştırın,

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

Burada, pip list --outdatedtüm dışarı tarihli paketleri listeleyeceğiz ve daha sonra awk için boruladık, böylece sadece isimleri yazdıracağız. Sonra, $(...)onu bir değişken yapacak ve daha sonra, her şey otomatik olarak matematiksel olarak yapılacak. İzinlere sahip olduğunuzdan emin olun. (Sadece sudokarışıklık varsa pip önce koydu ) adlı bir komut dosyası pip-upgrade yazardım, Kod feryat,

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

Sonra hazırlamak için aşağıdaki komut satırlarını kullanın:

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

Sonra, vur pip-upgradeve voila!


içinde son köşeli awk: cmd. line:1: { print $1 })
aygıta

7
@TT'nin daha yeni sürümleri seçeneği pipkullanmanızı gerektirir --format=legacy, yani pip list --outdated --format=legacy. Ayrıca FYI herkes: pip ile tüm modülleri körü körüne güncellemek birçok Linux dağıtımında oldukça tehlikeli olabilir. Birçoğu dağıtım paketleri aracılığıyla belirli python modülleri sağlar ve bu dağıtımların bazıları (özellikle RHEL), bok güncelliyorsanız zorlaşabilir ... pip yoluyla güncelleme yaparsanız, dağıtım paketlerinin değişikliklerinizi geri alabileceğinden bahsetmiyorum gelecekteki bir güncelleme.
testere

teşekkürler @ rsaw. Pip komutlarınızı --user seçeneği ile çalıştırmalısınız
Fahim Ferdous

1
Bu yanıtı beğendim, ancak her şeyi otomatik olarak güncelleme tehlikesini anlıyorum. Her neyse, eski sürüm pip 19.0 pip install $ 'da kullanımdan kaldırıldığı için (pip list --outdated --format = column | grep -v "Package" | grep -v - ---- | awk' {print $ 1} ') - -upgrade
mike v

2
Bir Ubuntu 18.04 venv üzerinde çalışmak için aşağıdaki gibi uyarlayın:pip install $(pip list --outdated | tail +3 | grep -v sdist | awk '{ print $1 }') --upgrade
Alexander Remesch

34
  1. Windows komut istemi ile çalıştırın: pip list --outdated Eski paketlerin listesini alırsınız.
  2. Çalıştır: Önceki sürümü pip install [package] --upgrade yükseltir [package]ve kaldırır.

Pip'i güncellemek için:

py -m pip install --upgrade pip

Bu, pip'in önceki sürümünü kaldıracak ve pip'in en son sürümünü yükleyecektir.


29
  • Yöntem 1: El ile tek tek yükseltme

pip install package_name -U
  • Yöntem 2: Hepsini bir kerede yükseltin (bazı paketlerin yükseltilememesi durumunda yüksek geri alma

pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
  • Yöntem 3: döngü kullanarak tek tek yükseltme

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

11

En iyi tek astar olduğunu düşünüyorum:

pip install --upgrade <package>==<version>

9

Pipupgrade kullan !

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

pipupgrade , sisteminizi, yerel veya paketlerinizi bir requirements.txtdosyadan yükseltmenize yardımcı olur ! Ayrıca, değişikliği bozmayan paketleri seçici olarak yükseltir. Python2.7 +, Python3.4 + ve pip9 +, pip10 +, pip18 + ile uyumludur.

resim açıklamasını buraya girin

NOT: Aracın yazarıyım.


1
Bu aracı her kullandığımda "[0; 93mChecking ... [0m” yanıtı alıyorum ve hiçbir şey yapmamaya devam ediyor. Yanlış mı kullanıyorum?
Violatic

MacPorts ile bir Mac kullanıyorum. Python 3.7 ile pipupgrade sadece 50 paketin 5'i için çalıştı, geri kalanı için bunu kullanmak zorundaydım: for i in pip3.7 list --outdated | sed -n -e '3,$s/ .*//p'; pip3.7 kurmak - yükseltme $ i; bitti
Michael Dreher

4

Paket başlangıçta nasıl kuruldu? Eğer uygunsa, sadeceapt-get remove python-m2crypto

Easy_install ile yüklediyseniz, tek yol sadece lib, paylaşılan, vb.

Gelecekte benim tavsiyem? Paketlerinizi kurmak için pip gibi bir şey kullanın . Ayrıca, virtualenv adı verilen bir şeye bakabilirsiniz, böylece paketleriniz yalnızca kökten ziyade, ortam başına bazda saklanır.

Pip ile oldukça kolay:

pip install m2crypto

Ancak git, svn vb. Depolarından doğru adresle de yükleyebilirsiniz. Tüm bunlar pip belgelerinde açıklanmıştır


Dosyaların nereye kurulduğunu tanımlaması, paketin apt paket yöneticisi kullanılarak kurulduğunu gösterir - çünkü (Debian AFAIK'te) apt, listelediği 2 konumun altına python paketleri yükleyecektir - / share / pyshared / .. paylaşılan kod içindir sürümlere ve / usr / lib / .. sürümüne özel parçalar için. easy-install / pip ise / usr / local / lib / .. 'yi kullanır. - Dediğiniz gibi - sadece apt-get kaldırma onu yapardı.
Basel Shishani


3

Juptyer not defterinde, çok basit bir yol

!pip install <package_name> --upgrade

Yani, sadece gerçek paket adıyla değiştirmeniz gerekir.


2

Tüm eski paketleri alın ve aşağıdaki komutlarla bir toplu iş dosyası oluşturun pip install xxx --upgrade, her eski paket için

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.