Python nasıl güncellenir?


135

2012'nin başlarından beri 2.7 sürümü yüklüyorum. En son sürüme geçmeden önce bu sürümü tamamen kaldırıp silmem gerekip gerekmediğine dair bir fikir birliği bulamıyorum.

"Yumuşak" - eski sürümleri kaldırmak? Eski sürümleri zorla kaldırmak / silmek mi? Üstte mi kuruluyorsunuz?

Bir yerde farklı sürümleri ayrı ve ayrı, ama işlevsel tutan, Python yüklemeleri "bölümleme" yöntemini kullanarak özel bir yükleme / yükseltme işlemi gördüm. Bunun standart, fiili yol olup olmadığından emin değilim.

Ayrıca Revo'nun çok fazla hevesli olup olmadığını ve çevre / PATH değişkenleri gibi hala ihtiyaç duyulan kalıntıları silmekle ilgili sorunlara neden olup olmayacağını merak ediyorum.

(Win7 x64, 32 bit Python)


1
2.7, yine de 2.x serisinin en son sürümüdür. 3.x geriye doğru uyumsuzdur. Mevcut 2.7 sürümüne yükseltmek istiyorsanız, sadece üste kuracağım.
Eevee

Yanıtlar:


106
GÜNCELLEME : 2018-07-06

Bu yazı şimdi yaklaşık 5 yaşında! Python-2.7, 2020'de python.org'dan resmi güncellemeleri almayı durduracak . Ayrıca, Python-3.7 yayınlandı . Python-2 kodunuzu Python-3 ile nasıl uyumlu hale getireceğiniz konusunda Python-Future'a göz atın . Conda'yı güncellemek için, belgeler artık conda update --alltüm paketleri ve bu sürüm için çalıştırılabilir Python'u güncellemek için conda ortamlarınızın her birinde kullanılmasını önerir . Ayrıca, adlarını Anaconda olarak değiştirdiklerinden, Windows kayıt defteri anahtarlarının hala aynı olup olmadığını bilmiyorum.

GÜNCELLEME : 2017-03-24

Haziran 2015'ten bu yana Python (x, y) için herhangi bir güncelleme yapılmadı, bu yüzden terk edildiğini varsaymanın güvenli olduğunu düşünüyorum.

GÜNCELLEME : 2016-11-11

Gibi aşağıda @cxw yorumlarla , bu cevaplar aynı bit-sürümleri için geçerlidir ve bit-sürüme göre ben 32 bit vs 64-bit anlamına gelir. Örneğin, bu cevaplar gelen güncellenmesi için de geçerli olacak 64 bit Python 2.7.10 64-bit Python 2.7.11 e yani : Aynı bit sürümü. Python'un iki farklı bit versiyonunu birlikte kurmak mümkün olsa da, biraz kesmek gerekir, bu yüzden bu egzersizi okuyucu için kaydedeceğim. Saldırı yapmak istemiyorsanız, bit sürümlerini değiştiriyorsanız, önce diğer bit sürümünü kaldırmanızı öneririm.

GÜNCELLEME : 2016-05-16
  • anakonda ve MiniConda , Windows PATHve Kayıt Defterini değiştirme seçeneklerini devre dışı bırakarak mevcut bir Python kurulumuyla kullanılabilir . Ekstraksiyon işleminden sonra, bir sembolik oluşturmak condaGözlerinde farklı binveya PyPI gelen Conda yükleyin. Sonra adlı başka sembolik oluşturmak conda-activateiçin activateAnaconda / Miniconda kök bin klasöründe. Şimdi Anaconda / Miniconda, Ruby RVM gibi. conda-activate rootAnaconda / Miniconda'yı etkinleştirmek için kullanın .
  • Taşınabilir Python artık geliştirilmiyor veya bakımı yapılmıyor.

TL; DR

  • Anaconda veya miniconda kullanarak , conda update --allher bir conda ortamını güncel tutmak için yürütün ,
  • resmi Python'un aynı büyük versiyonu ( örneğin 2.7.5), sadece eski ( ör. 2.7.4) üzerine yükleyin ,
  • resmi Python'un farklı ana sürümü ( örn. 3.3), eski, yollara / ilişkilendirmelere baskın olarak işaret edecek şekilde ayarlayın ( örneğin 2.7), diğerine kısayol ( örn . BASH'de $ ln /c/Python33/python.exe python3).

Cevap şu şekildedir:

  1. OP 2.7.x sürümüne sahipse ve 2.7.x sürümünün daha yeni bir sürümünü yüklemek istiyorsa,

    • kullanılıyorsa MSI yükleyici dan Python'un resmi sitesi , sadece eski bir sürümünü üzerinde yüklemek, yükleyici bunu kaldırmak ve eski bir sürümün edeceği uyarı göndermekte; önce ve sonra "kontrol panelinde" "yüklü programlar" a bakıldığında eski sürümün yeni sürümle değiştirildiğini onaylar; 2.7.x'in daha yeni sürümleri geriye dönük olarak uyumludur, bu nedenle bu tamamen güvenlidir ve bu nedenle IMHO'nun 2.7.x çoklu sürümleri asla gerekli olmamalıdır.
    • Kaynaktan bina oluşturuyorsanız, muhtemelen yeni, temiz bir dizin oluşturmalı ve ardından tüm testleri geçtikten sonra yeni yapıya giden yolu göstermelisiniz ve başarılı bir şekilde oluşturulduğundan eminseniz, ancak eskiyi korumak isteyebilirsiniz etrafından inşa edin çünkü kaynaktan bina yapmanın zaman zaman sorunları olabilir. SDK 7.0 ile Windows 7'de Python x64 oluşturma kılavuzuma bakın .
    • Python (x, y) gibi bir dağıtımdan kurulum yapıyorsanız , web sitelerine bakın. Python (x, y) terk edildi. Güncellemelerin Python (x, y) içinden paket yöneticileriyle işlenebileceğine inanıyorum, ancak güncellemeler de web sitelerine dahil edildi . Belli bir referans bulamadım, bu yüzden belki başka biri bununla konuşabilir. ActiveState ve muhtemelen Enthought'a benzer şekilde Python (x, y), Python'un diğer kurulumlarıyla uyumlu olmadığını açıkça belirtir:

      Python'u (x, y) kurmadan önce diğer Python dağıtımlarını kaldırmanız önerilir

    • Enthought Canopy bir MSI kullanır ve içine ya kuracaktır Program Files\Enthoughtveya home\AppData\Local\Enthought\Canopy\Apptüm kullanıcılar için veya sırasıyla kullanıcı başına. Daha yeni kurulumlar yerleşik güncelleme aracı kullanılarak güncellenir. Belgelerine bakın .
    • ActiveState ayrıca bir MSI kullanır, böylece yeni kurulumlar eskilerinin üzerine yüklenebilir. Kurulum notlarına bakın .

      Diğer Python 2.7 Kurulumları Windows'ta, ActivePython 2.7 diğer Python 2.7 kurulumlarıyla bir arada bulunamaz (örneğin, python.org'dan bir Python 2.7 derlemesi). ActivePython 2.7'yi yüklemeden önce diğer tüm Python 2.7 kurulumlarını kaldırın.

    • Sage , onu sanal bir makineye kurmanızı önerir ve bu amaçla kullanılabilecek bir Oracle VirtualBox görüntü dosyası sağlar. Yükseltmeler, sage -upgradekomut verilerek dahili olarak işlenir .
    • Anaconda şu komut kullanılarak güncellenebilirconda :

      conda update --all

      Anaconda / Miniconda, kullanıcıların Python-2.6, 2.7, 3.3, 3.4 ve 3.5 dahil olmak üzere birden fazla Python sürümünü yönetmek için ortamlar oluşturmalarına olanak tanır . Kök Anaconda / Miniconda kurulumları şu anda Python-2.7 veya Python-3.5'e dayanmaktadır.

      Anaconda muhtemelen diğer Python kurulumlarını bozacaktır. Yükleme, MSI yükleyicisini kullanır. [ GÜNCELLEME : 2016-05-16] Anaconda ve Miniconda artık .exeyükleyiciler kullanıyor ve Windows PATHve Kayıt Defteri değişikliklerini devre dışı bırakma seçenekleri sunuyor .

      Bu nedenle Anaconda / Miniconda, nasıl kurulduğuna ve kurulum sırasında seçilen seçeneklere bağlı olarak mevcut Python kurulumlarını bozmadan kurulabilir. Eğer .exeyükleyici kullanılır ve seçenekler, Windows değiştirmeye PATHve Sicil edilir değil devre dışı, ardından önceki Python tesisat devre dışı bırakılacak , ancak sadece Anaconda / Miniconda yüklemesini kaldırma, orijinal Python kurulumu geri belki Windows Kayıt hariç gerektiğini Python\PythonCoreanahtarları.

      : Anaconda / Miniconda bakılmaksızın kurulum seçeneklerinin aşağıdaki kayıt düzenlemeleri yapar HKCU\Software\Python\ContinuumAnalytics\: Aşağıdaki tuşlarıyla Help, InstallPath, Modulesve PythonPath- resmi Python de bu anahtarları kaydeder fakat altında Python\PythonCore. Ayrıca Anaconda \ Miniconda için kaldırma bilgileri kaydedilir. Yükleme sırasında "Windows ile Kayıt Ol" seçeneğini belirlemezseniz, oluşturmaz PythonCore, bu nedenle Visual Studio için Python Tools gibi entegrasyonlar Anaconda / Miniconda'yı otomatik olarak görmez. Anaconda / Miniconda kayıt seçeneği varsa edilir etkin, o zaman mevcut Python Windows Kayıt tuşları değişmiş olacak düşünüyorum ve kaldırma muhtemelen onları döndürmez.

    • WinPython güncellemeleri, sanırım, WinPython Denetim Masası'ndan ele alınabilir .
    • PortablePython edilir artık geliştirilmektedir . Güncelleme yöntemi yoktu. Muhtemelen güncellemeler taze bir dizine fermuarını olabilir o App\lib\site-packagesve App\Scriptsyeni yükleme kopyalanabilir olabilir, ancak bu tüm paketlerin yeniden sonra işe yaramadı gerekirse olabilirdi. pip listHangi paketlerin yüklendiğini ve sürümlerini görmek için kullanın . Bazıları PortablePython tarafından kuruldu. easy_install pipYüklü değilse pip'i kurmak için kullanın .
  2. OP 2.7.x sürümüne sahipse ve farklı bir sürüm yüklemek istiyorsa, örneğin <= 2.6.x veya> = 3.xx ise, farklı sürümleri yan yana yüklemek iyidir. Hangi Python sürümünü (varsa) *.pydosyalarla ilişkilendireceğinizi ve hangisini yolunuzda seçeceğinizi seçmelisiniz , ancak kullanıyorsanız farklı yollara sahip mermiler ayarlayabilmelisinizBASH . AFAIK 2.7.x 2.6.x ile geriye dönük olarak uyumludur, bu nedenle IMHO yan yana kurulum gerekli değildir, ancak Python-3.xx geriye dönük olarak uyumlu değildir, bu yüzden önerim Python-2.7'yi yolunuza koymak ve Python-3, çalıştırılabilirine python3 adlı bir kısayol oluşturarak isteğe bağlı bir sürüm olabilir (bu Linux'ta yaygın bir kurulumdur). Windows'ta resmi Python varsayılan yükleme yolu:

    • C: \ 3.3.x için Python33 (en son 2013-07-29)
    • C: 3.2.x için \ Python32
    • Ve c.
    • C: 2.7.x için \ Python27 (en son 2013-07-29)
    • C: 2.6.x için \ Python26
    • Ve c.
  3. OP, Python'u güncellemiyor, sadece paketleri güncelliyorsa , geliştirme projelerine özgü paketlerin farklı sürümlerini ayrı tutmak için virtualenv'e bakmak isteyebilirler . Pip ayrıca paketleri güncellemek için harika bir araçtır. Paketler ikili yükleyiciler kullanıyorsa, yenisini yüklemeden önce genellikle eski paketi kaldırırım.

Umarım bu karışıklığı giderir.


1
Hey Mark, yeni bir sorum var. 2.7.x'ten 3.3.x'e yükseltmenin gerçekten önemli olduğuna inanıyor musunuz? Python kullanmaya başladım ve eski sürümü yükledim, ancak başladığımdan beri en yeni sürümü öğrenmek istedim (sadece çok küçük farklılıklar olmadıkça). Buna ne diyorsun? Yardımınız için teşekkürler.
Matteo

7
Her ikisini de kullanırdım. MS Windows kullanıyorsanız, kök klasörünüze girersiniz C:\Python27ve C:\Python33Mac kullanıyorsanız, görürsünüz /Library/Frameworks/Python/Versions/2.7.xve /Library/Frameworks/Python/Versions/3.3.xLinux'taysanız muhtemelen her ikiniz de zaten yüklüdür. Gelenek Python-2.7 kullanmak ve Python-3.3 için ikili symlink olduğunu python33. Ayrıca Python2 veya Python3 ve Python 2 ve Python 3'e bakın . Kişisel olarak 3.3'e geçemeyecek kadar tembelim.
Mark Mikofski

2
Detaylı cevap için teşekkürler! 2.7 ile, eski 32 bit ve biri 64 bit olduğunda yüklemek işe yaramadı. Her ikisi de C: \ Python27 işaret "Programlar ve Özellikler" iki giriş ile yara. Cevabınızı, sadece 32 ile 32 ve 64 ile 64'ün üzerine yazması gerektiğine cevabınızı eklemek ister misiniz? Teşekkürler!
cxw

1
@cxw geri bildiriminiz için teşekkür ederiz. Hem 32 hem de 64'ü birlikte almak istiyorsanız, yollar var. Muhtemelen en kolay bir denen kullanmaktır yüklemek "admin" içine 32 bit sürümünün C:\Python27_x86komut satırından: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Başka bir seçenek de kaynaktan oluşturmak veya Bootstrap Python'u denemektir .
Mark Mikofski

1
MSI yükleyicisi 2.7 klasörünü değiştireceğini söylüyor, ancak 2.7 komut dizisinde başka komut dosyaları depolarsanız bunları silmez;)
XXN

6

En iyi çözüm, farklı Python sürümlerini birden çok yola kurmaktır.

Örneğin. 2.7 için C: \ Python27 ve 3.3 için C: \ Python33.

Daha fazla bilgi için bunu okuyun: Windows'ta birden çok Python sürümü nasıl çalıştırılır


Ben böyle yaparım. Python 2.7.xx ve 3.5.xx ve IronPython 2.7.xx sürümlerinin hem 32 hem de 64 bit sürümlerini çalıştırıyorum. Eclipse'ı geliştirme için kullanıyorum ve hata ayıklama sırasında python yolunu seçiyorum. Bir komut dosyası çalıştırırken, kullanmak istediğim yorumlayıcı sürümünün yolunu ayarladım. 3.5.0'dan 3.5.3'e güncelleme, yeni bir yükleme yerine basit bir güncelleme seçeneği sunar.
Bill Kidd

5
  • Resmi Python .msi yükleyicileri aşağıdakilerin yerini alacak şekilde tasarlanmıştır:

    • önceki mikro sürümler ( xyz , z "mikro" dır), çünkü geriye dönük ve ikili uyumlu olmaları garanti edilmektedir
    • herhangi bir mikro sürümle "anlık görüntü" (kaynaktan oluşturulmuş) yükleme
  • Anlık görüntü yükleyici, herhangi bir anlık görüntüyü daha düşük bir mikro sürümle değiştirmek için tasarlanmıştır.

( 2.x için sorumlu koda bakınız , 3.x için )

Diğer sürümler mutlaka uyumlu değildir ve dolayısıyla mevcut sürümün yanına kurulur. Eski sürümü kaldırmak istiyorsanız, bunu manuel olarak yapmanız gerekir. Ayrıca, bunun için sahip olduğunuz 3. taraf modüllerini kaldırın:

  • bdist_wininstPaketlerden herhangi bir modül yüklediyseniz (Windows .exe), sürümü kaldırmadan önce bunları kaldırın veya özel mantığı varsa kaldırıcı düzgün çalışmayabilir
  • içinde bulunan setuptools/ pipbulunan modüller Lib\site-packagesdaha sonra silinebilir
  • Kullanıcı başına yüklediğiniz paketler varsa, ikamet eder %APPDATA%/Python/PythonXY/site-packagesve aynı şekilde silinebilir

1

Yeni sürümü her zaman en üste yükledim ve hiç sorun yaşamadım. Yolunuzun yeni sürüme işaret edecek şekilde güncellendiğinden emin olun.


1
Üzerine kurulum yaptığınızda, indirdiğim pygame, bs4, lxml vb. Harici modülleri koruyor mu?
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.