Bagaimana cara memperbarui Python?

135

Saya telah menginstal versi 2.7 dari awal 2012. Saya tidak dapat menemukan konsensus tentang apakah saya harus menghapus dan menghapus versi ini sepenuhnya sebelum memasang versi terbaru.

"Lembut" - menghapus versi lama? Menghapus / menghapus versi lama? Menginstal dari atas?

Saya telah melihat di suatu tempat proses pemasangan / peningkatan khusus menggunakan metode "segmentasi" instalasi Python, menjaga versi yang berbeda terpisah dan terpisah, tetapi fungsional. Tidak yakin apakah ini standar, cara de facto.

Saya juga bertanya-tanya apakah Revo menjadi terlalu bersemangat dan dapat menyebabkan masalah dengan menghapus sisa-sisa yang masih dibutuhkan, seperti variabel lingkungan / PATH.

(Win7 x64, Python 32-bit)

Coldblackice
sumber
1
2.7 masih merupakan versi terbaru — dalam seri 2.x. 3.x tidak kompatibel dengan mundur. jika Anda ingin memutakhirkan ke rilis 2.7 saat ini, saya baru saja menginstal dari atas.
Eevee

Jawaban:

106
UPDATE : 2018-07-06

Posting ini sekarang hampir berumur 5 tahun! Python-2.7 akan berhenti menerima pembaruan resmi dari python.org pada tahun 2020 . Juga, Python-3.7 telah dirilis . Lihat Python-Future tentang cara membuat kode Python-2 Anda kompatibel dengan Python-3. Untuk memperbarui conda, dokumentasi sekarang merekomendasikan penggunaan conda update --alldi setiap lingkungan conda Anda untuk memperbarui semua paket dan Python dieksekusi untuk versi itu. Juga, karena mereka mengubah nama mereka menjadi Anaconda, saya tidak tahu apakah kunci registri Windows masih sama.

UPDATE : 2017-03-24

Tidak ada pembaruan untuk Python (x, y) sejak Juni 2015, jadi saya pikir aman untuk menganggapnya telah ditinggalkan.

UPDATE : 2016-11-11

Seperti komentar @cxw di bawah , jawaban ini untuk versi bit yang sama, dan menurut versi bit yang saya maksud adalah 64-bit vs 32-bit. Sebagai contoh, jawaban ini akan berlaku untuk memperbarui dari 64-bit Python-2.7.10 ke 64-bit Python-2.7.11, yaitu : versi bit yang sama . Meskipun dimungkinkan untuk menginstal dua versi bit Python yang berbeda secara bersamaan, itu akan memerlukan beberapa peretasan, jadi saya akan menyimpan latihan itu untuk pembaca. Jika Anda tidak ingin meretas, saya sarankan jika beralih versi bit, hapus versi bit lainnya terlebih dahulu.

PEMBARUAN : 2016-05-16
  • Anaconda dan MiniConda dapat digunakan dengan instalasi Python yang sudah ada dengan menonaktifkan opsi untuk mengubah Windows PATHdan Registry. Setelah ekstraksi, buat symlink ke condadalam Anda binatau instal conda dari PyPI. Kemudian buat symlink lain yang dipanggil conda-activateke activatedalam folder bin root Anaconda / Miniconda. Sekarang Anaconda / Miniconda seperti Ruby RVM. Cukup gunakan conda-activate rootuntuk mengaktifkan Anaconda / Miniconda.
  • Portable Python tidak lagi dikembangkan atau dipelihara.

TL; DR

  • Menggunakan Anaconda atau miniconda , maka jalankan saja conda update --alluntuk menjaga setiap lingkungan conda diperbarui,
  • versi utama yang sama dari Python resmi ( misalnya 2.7.5), cukup instal di atas yang lama ( misalnya 2.7.4),
  • versi utama berbeda dari Python resmi ( mis. 3.3), instal berdampingan dengan yang lama, tetapkan jalur / asosiasi untuk menunjuk ke dominan ( mis. 2.7), pintasan ke yang lain ( mis. dalam BASH $ ln /c/Python33/python.exe python3).

Jawabannya tergantung:

  1. Jika OP memiliki 2.7.x dan ingin menginstal versi 2.7.x yang lebih baru, maka

    • jika menggunakan penginstal MSI dari situs web Python resmi , cukup instal versi lama, penginstal akan mengeluarkan peringatan bahwa ia akan menghapus dan mengganti versi yang lebih lama; melihat "program yang diinstal" di "panel kontrol" sebelum dan sesudah mengkonfirmasi bahwa versi lama telah digantikan oleh versi baru; versi 2.7.x yang lebih baru kompatibel ke belakang sehingga ini benar-benar aman dan karena itu IMHO beberapa versi 2.7.x seharusnya tidak perlu.
    • jika membangun dari sumber, maka Anda mungkin harus membangun di direktori yang baru dan bersih, dan kemudian mengarahkan jalan Anda ke bangunan baru setelah melewati semua tes dan Anda yakin bahwa itu telah berhasil dibangun, tetapi Anda mungkin ingin mempertahankan yang lama membangun sekitar karena membangun dari sumber terkadang memiliki masalah. Lihat panduan saya untuk membuat Python x64 di Windows 7 dengan SDK 7.0 .
    • jika menginstal dari distribusi seperti Python (x, y) , lihat situs web mereka. Python (x, y) telah ditinggalkan. Saya percaya bahwa pembaruan dapat ditangani dari dalam Python (x, y) dengan manajer paket mereka, tetapi pembaruan juga disertakan di situs web mereka . Saya tidak dapat menemukan referensi spesifik sehingga mungkin orang lain dapat berbicara dengan ini. Mirip dengan ActiveState dan mungkin Enthought, Python (x, y) dengan jelas menyatakan itu tidak kompatibel dengan instalasi lain dari Python:

      Disarankan untuk menghapus instalan distribusi Python lain sebelum menginstal Python (x, y)

    • Enthought Canopy menggunakan MSI dan akan menginstal masing-masing ke Program Files\Enthoughtatau home\AppData\Local\Enthought\Canopy\Appuntuk semua pengguna atau per pengguna. Instalasi baru diperbarui dengan menggunakan alat pembaruan bawaan. Lihat dokumentasi mereka .
    • ActiveState juga menggunakan MSI sehingga instalasi yang lebih baru dapat diinstal di atas yang lebih lama. Lihat catatan instalasi mereka .

      Instalasi Python 2.7 Lain Pada Windows, ActivePython 2.7 tidak dapat hidup berdampingan dengan instalasi Python 2.7 lainnya (misalnya, membangun Python 2.7 dari python.org). Hapus instalasi instalasi Python 2.7 lainnya sebelum menginstal ActivePython 2.7.

    • Sage merekomendasikan Anda menginstalnya ke mesin virtual, dan menyediakan file gambar Oracle VirtualBox yang dapat digunakan untuk tujuan ini. Upgrade ditangani secara internal dengan mengeluarkan sage -upgradeperintah.
    • Anaconda dapat diperbarui dengan menggunakan condaperintah :

      conda update --all

      Anaconda / Miniconda memungkinkan pengguna membuat lingkungan untuk mengelola beberapa versi Python termasuk Python-2.6, 2.7, 3.3, 3.4 dan 3.5. Instalasi root Anaconda / Miniconda saat ini didasarkan pada Python-2.7 atau Python-3.5.

      Anaconda kemungkinan akan mengganggu instalasi Python lainnya. Instalasi menggunakan penginstal MSI. [ UPDATE : 2016-05-16] Anaconda dan Miniconda sekarang menggunakan .exeinstaller dan memberikan opsi untuk menonaktifkan PATHperubahan Windows dan Registry.

      Oleh karena itu Anaconda / Miniconda dapat diinstal tanpa mengganggu instalasi Python yang ada tergantung pada bagaimana itu diinstal dan opsi yang dipilih selama instalasi. Jika .exeinstaller digunakan dan opsi untuk mengubah Windows PATHdan Registry tidak dinonaktifkan, maka instalasi Python sebelumnya akan dinonaktifkan , tetapi hanya menghapus instalasi instalasi Anaconda / Miniconda harus mengembalikan instalasi Python asli, kecuali mungkin Python\PythonCorekunci Registry Windows .

      Anaconda / Miniconda membuat registri edit berikut terlepas dari pilihan instalasi: HKCU\Software\Python\ContinuumAnalytics\dengan tombol berikut: Help, InstallPath, Modulesdan PythonPath- resmi Python register kunci ini juga, tetapi di bawah Python\PythonCore. Juga informasi penghapusan instalasi terdaftar untuk Anaconda \ Miniconda. Kecuali Anda memilih opsi "Daftarkan dengan Windows" selama instalasi, itu tidak membuat PythonCore, jadi integrasi seperti Python Tools untuk Visual Studio tidak secara otomatis melihat Anaconda / Miniconda. Jika opsi untuk mendaftarkan Anaconda / Miniconda ini diaktifkan, maka saya pikir kunci Python Registry Windows Anda yang ada akan diubah dan instalasi mungkin tidak akan memulihkan mereka.

    • Pembaruan WinPython , saya pikir, dapat ditangani melalui Panel Kontrol WinPython .
    • PortablePython ini tidak lagi dikembangkan . Itu tidak memiliki metode pembaruan. Kemungkinan pembaruan dapat di-unzip ke direktori baru dan kemudian App\lib\site-packagesdan App\Scriptsdapat disalin ke instalasi baru, tetapi jika ini tidak berhasil maka instal ulang semua paket mungkin diperlukan. Gunakan pip listuntuk melihat paket apa yang diinstal dan versinya. Beberapa dipasang oleh PortablePython. Gunakan easy_install pipuntuk menginstal pip jika tidak diinstal.
  2. Jika OP memiliki 2.7.x dan ingin menginstal versi yang berbeda, mis. <= 2.6.x atau> = 3.xx, maka menginstal versi yang berbeda secara berdampingan baik-baik saja. Anda harus memilih versi Python (jika ada) untuk dikaitkan dengan *.pyfile dan yang Anda inginkan di jalur Anda, meskipun Anda harus dapat mengatur shell dengan jalur yang berbeda jika Anda menggunakan BASH . AFAIK 2.7.x kompatibel dengan 2.6.x, jadi instalasi sisi-demi-sisi IMHO tidak diperlukan, namun Python-3.xx tidak kompatibel, jadi rekomendasi saya adalah meletakkan Python-2.7 di jalur Anda dan memiliki Python-3 menjadi versi opsional dengan membuat pintasan ke executable-nya yang disebut python3 (ini adalah pengaturan umum di Linux). Jalur instal default Python resmi pada Windows adalah

    • C: \ Python33 untuk 3.3.x (terbaru 2013-07-29)
    • C: \ Python32 untuk 3.2.x
    • & c.
    • C: \ Python27 for 2.7.x (terbaru 2013-07-29)
    • C: \ Python26 untuk 2.6.x
    • & c.
  3. Jika OP tidak memperbarui Python, tetapi hanya memperbarui paket, mereka mungkin ingin melihat ke virtualenv untuk menjaga versi paket yang berbeda khusus untuk proyek pengembangan mereka terpisah. Pip juga merupakan alat yang hebat untuk memperbarui paket. Jika paket menggunakan installer biner, saya biasanya menghapus paket lama sebelum menginstal yang baru.

Saya harap ini membersihkan semua kebingungan.

Mark Mikofski
sumber
1
Hei Mark, saya punya pertanyaan pemula. Apakah Anda percaya bahwa sebenarnya penting untuk meningkatkan dari 2.7.x ke 3.3.x? Saya mulai menggunakan python dan menginstal versi lama, tetapi karena saya mulai saya ingin mempelajari versi terbaru (kecuali hanya ada perbedaan yang sangat kecil). Apa panggilan Anda untuk ini? Terima kasih atas bantuan Anda.
Matteo
7
Saya akan menggunakan keduanya. Jika Anda menggunakan MS Windows, Anda akan masuk ke folder root C:\Python27dan C:\Python33, jika Anda menggunakan Mac, Anda akan melihat /Library/Frameworks/Python/Versions/2.7.xdan /Library/Frameworks/Python/Versions/3.3.xdan jika Anda menggunakan Linux, Anda mungkin sudah menginstal keduanya. Tradisi adalah menggunakan Python-2.7 dan symlink biner untuk Python-3.3 python33. Juga lihat Python2orPython3 dan Python 2 vs Python 3 . Saya pribadi terlalu malas untuk beralih ke 3.3.
Mark Mikofski
2
Terima kasih atas jawaban terinci! Dengan 2.7, menginstal lebih dari yang lama tidak berfungsi ketika ada yang 32 bit dan satunya 64 bit. Saya berakhir dengan dua entri di "Program dan Fitur", keduanya menunjuk ke C: \ Python27. Apakah Anda bersedia menambahkan jawaban Anda bahwa orang-orang seharusnya hanya menimpa 32 dengan 32 dan 64 dengan 64? Terima kasih!
cxw
1
@cxw terima kasih atas umpan baliknya. Jika Anda ingin memiliki 32 dan 64 bersama-sama, ada beberapa cara. Mungkin yang paling mudah adalah dengan menggunakan apa yang disebut "admin" menginstal versi 32-bit ke C:\Python27_x86dari baris perintah: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Pilihan lain adalah membangun dari sumber , atau coba Bootstrap Python .
Mark Mikofski
1
Pemasang MSI mengatakan bahwa itu akan menggantikan folder 2.7, namun, jika Anda menyimpan skrip lain di folder 2.7 root, ia tidak akan menghapusnya;)
XXN
6

Solusi terbaik adalah menginstal versi Python yang berbeda di banyak jalur.

misalnya. C: \ Python27 for 2.7, dan C: \ Python33 for 3.3.

Baca ini untuk info lebih lanjut: Cara menjalankan beberapa versi Python di Windows

Wei Yen
sumber
Beginilah cara saya melakukannya. Saya menjalankan versi 32 dan 64 bit dari python 2.7.xx dan 3.5.xx dan IronPython 2.7.xx. Saya menggunakan Eclipse untuk pengembangan dan memilih jalur python saat debugging. Saat menjalankan skrip, saya cukup mengatur path ke versi interpreter yang ingin saya gunakan. Memperbarui 3.5.0 ke 3.5.3 menawarkan opsi pembaruan sederhana dibandingkan instalasi baru.
Bill Kidd
5
  • Pemasang resmi Python .msi dirancang untuk menggantikan:

    • setiap rilis mikro sebelumnya (dalam xyz , z adalah "mikro") karena mereka dijamin kompatibel ke belakang dan kompatibel dengan biner
    • instalasi "snapshot" (dibangun dari sumber) dengan versi mikro apa pun
  • Pemasang snapshot dirancang untuk mengganti snapshot apa pun dengan versi mikro yang lebih rendah.

(Lihat kode yang bertanggung jawab untuk 2.x , untuk 3.x )

Versi lain tidak selalu kompatibel dan dengan demikian dipasang di samping yang sudah ada. Jika Anda ingin menghapus versi lama, Anda harus melakukannya secara manual. Dan juga uninstall semua modul pihak ketiga yang Anda miliki untuk itu:

  • Jika Anda menginstal modul apa pun dari bdist_wininstpaket (Windows .exe), hapus instalannya sebelum menghapus instalan versi, atau uninstaller mungkin tidak berfungsi dengan benar jika memiliki logika khusus
  • modul yang diinstal dengan setuptools/ pipyang tinggal di Lib\site-packagesdapat dihapus setelahnya
  • paket yang Anda instal per pengguna, jika ada, tinggal di %APPDATA%/Python/PythonXY/site-packagesdan juga dapat dihapus
ivan_pozdeev
sumber
1

Saya selalu menginstal versi baru di atas dan tidak pernah memiliki masalah. Pastikan jalur Anda diperbarui untuk menunjuk ke versi baru.

Zack
sumber
1
Ketika Anda menginstal dari atas, apakah itu mempertahankan modul eksternal seperti pygame, bs4, lxml, dll. Yang saya unduh?