Pip'i sanal ortamımın içinden nasıl güncelleyebilirim?


523

Pip yönetilen paketleri güncelleyebiliyorum, ancak pip'in kendisini nasıl güncelleyebilirim? Buna göre pip --version, sanal arayüzümde şu anda pip 1.1 yüklü ve en son sürüme güncellemek istiyorum.

Bunun emri ne? Dağıt kullanmam gerekir mi yoksa yerel bir pip veya virtualenv komutu var mı? Zaten denedim pip updateve pip update pipbaşarılı olamadım.


40
pip install --upgrade pip? Bu sadece başka bir PyPI paketi.
Cairnarvon

1
Bu komut bana "/ Users / zak / MyProject / venv / bin / pip install: error: böyle bir seçenek yok: --update"
zakdances

4
O var --upgradedeğil, --updateüzgünüm. Gönderiyi hemen düzenledim, ancak tam olarak yanlış zamanda görmüş olmalısınız.
Cairnarvon

2
@Cairnarvon komut farklı pip3mı? Ben pip3 için çalışıyorum ama sadece onu bulamıyor ve sonra devam ediyor güncel değil ... güncellemek / yükseltmek bile izin vermez tekrar şikayet ediyor!
Charlie Parker

Yanıtlar:


929

pipsadece diğerleri gibi bir PyPI paketidir ; herhangi bir paketi yükselttiğiniz şekilde yükseltmek için kullanabilirsiniz:

pip install --upgrade pip

Windows'ta önerilen komut :

python -m pip install --upgrade pip

53
Windows altında pip kullanarak pip yükseltmeye çalışırken bir izin sorunu vardı. Bunun yerine yükseltmek için easy_install kullandım:easy_install pip
bsa

8
Yaptığımda bu pip yükseltilmiş gibi görünüyordu (1.1 -> 1.4), ama "pip --version" yaptığımda hala eski sürüm 1.1 gösteriyor. Virtualenv'i tekrar devre dışı bırakmaya ve etkinleştirmeye çalıştı, ancak hala eski sürümü gösteriyor.
Zitrax

40
Windows'da muhtemelen böyle bir komutu kullanmak daha iyidir: python -m pip install --upgrade pippip.exe'yi komut dosyalarından çalıştırmaktan kaçınmak için.
bialix

@Zitrax bu sorunu çözdünüz mü? Aynı sorunla karşı karşıyayım.
Mohammad ali baghershemirani

@Mohammadalibaghershemirani üzgünüm bu bir süre önce - hatırlayamıyorum.
Zitrax

58

Daha güvenli yöntem pip'i bir python modülü üzerinden çalıştırmaktır :

python -m pip install -U pip

Pencerelerde, kendilerini değiştirmeye çalışan ikili dosyalarda bir sorun var gibi görünüyor, bu yöntem bu sınırlamaya geçici olarak çözüm getiriyor.


9
Bu, pip'in kendisinin önerdiği şeydir, eğer daha yeni bir sürümünü algılarsa.
tephyr

1
Bunun daha güvenli olmasının nedeni, bazı işletim sistemlerinde (Windows), sadece pip çalıştırmanın çalıştırılabilir dosyada dosya kilidini oluşturabilmesini ve bunun güncellenmesini önleyeceğidir. Python'u çağırarak ve modülü doğrudan yüklemesini söyleyerek yürütülebilir dosyaya erişmekten kaçınabilirsiniz.
jpmc26

Çalışması için komut istemini yönetici modunda çalıştırmanız gerekir. Diğer birkaç öneri denedim ve yönetici modunda komut istemi penceresini yeniden başlatana kadar hiçbir şey işe yaramadı, sonra bu komut mükemmel çalıştı.
DaveN59

42

Benim durumumda benim pip sürümü kırık böylece kendi başına güncelleme işe yaramaz.

Düzeltme:

(inside virtualenv):easy_install -U pip

1
Benim durumum da buydu. Diğer tüm yöntemleri denedim ama sadece bu bana yardımcı oluyor. Teşekkürler !
levif

Aynı şekilde, Debian'da benim için tek yol bu. Sanal pencerenin içinden pip yükseltmek için python veya pip kullanmak başarısız olur çünkü venv dışında oturan mevcut pip kaldırmayı reddetti.
user3748764

Bunu çalıştırmak bana Download error on https://pypi.python.org/simple/pip/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) -- Some packages may not be found!--upgrade çalışırken görüntülenmeyen dahil olmak üzere bir sürü şey gösterdi. Ve muhtemelen herhangi bir pip paketinin yüklenmesinin nedeninin başarısız olmasının ve pip yoluyla pip'in yükseltilmesinin neden başarısız olduğu, SSL bozuk görünüyor.
Vadorequest

9

Yukarıda bahsedilen tüm çözümleri Debian Jessie altında denedim. Çalışmıyorlar, çünkü debian paket yöneticisi tarafından derlenen en son sürüm olan 1.5.6 olan 6.0.x sürümüne denk geliyor. Önkoşul olarak pip kullanan bazı paketler, spaCy (düzgün çalışması için --no-cache-dir seçeneğine ihtiyaç duyar) gibi bir sonuç olarak çalışmaz.

Bu nedenle, bu sorunları çözmenin en iyi yolu, wget, web sitesinden veya curl kullanarak aşağıdaki şekilde indirilen get-pip.py'yi çalıştırmaktır :

 wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py
 python ./get-pip.py
 python3 ./get-pip.py

Bu, bu çözümü yazarken 9.0.1 olan Debian'ın sağladığı şeyin çok ötesinde olan geçerli sürümü yükleyecektir.

 $ pip --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7)
 $ pip3 --version
 pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4)

2
pip install --upgrade pipbaşarısız olduğunda yardımcı olur
Aneuway

Bu cevabı birkaç kez değerlendirebilseydim yapardım. Bu, pip 9.x'in pip 10.x'e güncellenerek bir SSL hatasıyla başarısız olması sorununu çözdü. Bkz. Stackoverflow.com/questions/25981703/…
Keith John Hutchison

Eğer mutlu olsam bile, onu iptal ettiysen. Cevaplarım genellikle bir ya da iki saat avlanma ve yılların tecrübesinden elde edilir. Sorularım için de aynı şey söylenemez mi? İnsanlar gerçekten kaba olabilir! :)
Eamonn Kenny

4

Korkulan sertifika sorunu nedeniyle pip'i ' pip install --upgrade pip ' kullanarak yükseltme her zaman işe yaramaz: SSL sertifikasını onaylarken bir sorun oluştu: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 uyarı protokolü sürümü

Sanal envs için bir satır komutunu kullanmayı seviyorum:

curl https://bootstrap.pypa.io/get-pip.py | python -

Veya kutu genişliğinde kurmak istiyorsanız ihtiyacınız olacak

curl https://bootstrap.pypa.io/get-pip.py | sudo python -

bir otomasyon komut dosyasında çalışırken çıktıyı susturmak istiyorsanız curl a -s bayrağı verebilirsiniz .


1

Benim durumumda bu Debian Stable'daki terminal komut satırından çalıştı

python3 -m pip install --upgrade pip

1

Bu benim için çalışmak için Python komut istemi (VS CODE WIN10 üzerinde) kullanarak Python dizininde detaya zorunda kaldı. Benim durumumda "AppData \ Local \ Programs \ Python \ python35-32" dizinimdeydi. Oradan şimdi komutu çalıştırdım ...

python -m pip install --upgrade pip

Bu işe yaradı ve ben gidiyorum.


1

Yönetici İzinleriyle Komut İstemi'ni açın ve komutu tekrarlayın:

python -m pip install --upgrade pip

4
Bu mevcut cevapların bazıları ile aynı değil mi?
hkchengrex

Ancak, sorunu yaşıyordum ve CMD'yi Yönetici Ayrıcalıklarıyla çalıştırdığımda çözüldü.
MRamzan

1

pip sürüm 10 bir sorun var. Hata olarak tezahür eder:

ubuntu@mymachine-:~/mydir$ sudo pip install --upgrade pip
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

Çözüm, yükseltmek ve daha sonra çalıştırmak istediğiniz venv'de olmaktır:

sudo myvenv/bin/pip install --upgrade pip

sadece değil

sudo pip install --upgrade pip

1

Venv kullanıyorsanız, pip install için herhangi bir güncelleme venv pip yerine sistem pip'inin yükseltilmesine neden olacaktır. Pip önyükleme paketlerini de yükseltmeniz gerekir.

  python3 -m pip install --upgrade pip setuptools wheel

python mailist veya pepa ile ilgili bir sorun vardı. Ne yazık ki tüm taraflar not my motorollersorunu sorun olarak uzaklaştırdı
dre-hh

0

Python'u C: \ Python \ Python36 içine yükledim, bu yüzden Windows komut istemine gittim ve doğru dizine ulaşmak için "cd C: \ Python \ Python36" yazdım. Sonra "python -m install --upgrade pip" yazdım iyi!


0

Windows 7 ile dizüstü bilgisayarımda pip'in en son sürümünü yüklemenin doğru yolu:

python.exe -m pip install --upgrade pip

0

Tek Hat Python Programı
Bulduğum en iyi yol, resmi get-pip betiğini indiren ve çalıştıran tek satırlık bir program yazmaktır. Kod için aşağıya bakın.

Resmi dokümanlar get-pip komut dosyasını indirmek için curl kullanmanızı önerir, ancak pencerelerde çalıştığım ve curl yüklü olmadığından komut dosyasını indirmek ve çalıştırmak için python'un kullanılmasını tercih ederim.

İşte Python 3 kullanılarak komut satırı üzerinden çalıştırılabilen tek satırlı program:

python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Bu satır, kurulum notlarına göre resmi "get-pip.py" komut dosyasını alır ve komut dosyasını "exec" komutuyla yürütür.

Python2 için "urllib.request" yerine "urllib2" yazın:

python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"

Önlemler
Herhangi bir python betiğini körü körüne çalıştırmanın doğası gereği tehlikeli olduğunu belirtmek gerekir. Bu nedenle, resmi talimatlar komut dosyasını indirip çalıştırmadan önce incelemenizi önerir.

Bununla birlikte, birçok insan kodu gerçekten incelemiyor ve sadece çalıştırmıyor. Bu tek satırlık program bunu kolaylaştırır.


0

Ahududu pi benzer bir sorun vardı.

Sorun http SSL gerektirir ve bu yüzden bu gereksinimi aşmak için https kullanmaya zorlamak gerekiyordu.

sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple

veya

sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/

0

Benzer bir durumdaydım ve urllib3 paketini güncellemek istedim. Benim için işe yarayan şuydu:

pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3

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.