Ubuntu sisteminde Python'un güncellenmesi


78

Linux kutumdaki Python kurulumunu güncellemek istiyorum, ancak nasıl yapabileceğimi bilmenin tek yolu mevcut sürümü kaldırmak ve yenisini yüklemek. Sistemim zaten güncel (dün güncellendiğim). Belirli bir programı komut satırından güncellemenin bir yolu olup olmadığını bilmek istedim sudo apt-get update <program-name>. Bu komutun varolmadığını biliyorum ama eşdeğer bir şeyin olmasını umuyorum.


Eğer sisteminiz güncel ise sisteminizdeki Python da (depolarınıza göre). Yanlış mıyım?
cYrus

Yanıtlar:


64

Diğerlerinin de belirttiği gibi, çıplak sudo apt-get install package, gerekirse eski olanı değiştirerek en son sürümü yükleyecektir.

Ancak bazı yazılımlarda (Python'un olduğu) durum biraz daha farklı. Bazı büyük, çok ve uyumsuz bir biçimde farklı sürümler kendi paketlerini alır. Örneğin, Python 2.6 , Python 2.7 , Python 3.1'in tümü Ubuntu'da ayrı paketlerde yaşar.

Özellikle önemli olan, Ubuntu politikalarından birinin son kullanıcı yazılımı yazmak için Python'u yaygın olarak kullanmasıdır. Aslında, sistemin oldukça büyük bir kısmı Python ile yazılmıştır. Şu anda, kod Python 2.6'da çalışıyor - yani bu sürüm kurulum sırasında varsayılan; ve kod olmaz kolayca derler, Python 2.7 üzerinde çalışan - uyumsuzluklar mevcut olduğundan. Sistemi Python 2.7'ye geçirmek için, tüm senaryoların güncellenmesi ve yeniden test edilmesinden oluşan bir çalışma çalışması yapılması gerekir. Bu kolayca yapılamaz; yani, sisteminizi Python 2.7'ye "değiştiremezsiniz" ve eski sürümü silemezsiniz.

Fakat. Sisteminizin süslü dişlilerine aldırış etmiyorsanız ve sadece daha yeni Python'a ihtiyacınız varsa, hiçbir engel görmeyin. Git ve sudo apt-get install python33.x Python'u cesurca kodla; sadece senaryolarınızı yayınlamayı python3ve #!/usr/bin/env python3shebang satırını kullanmayı unutmayın .


6
Sahne arkası çalışmalarıyla ilgili harika detaylar.
verimlilik

16
sudo apt-get install python 3.3.3

bu python (3.3.3) içindir, farklı sürüm için ilgili sürüm numarası kullanılmalıdır.


4
Python ve versiyon arasındaki boşluğun orada olmaması gerektiğini düşünüyorum. sudo apt-get install python3.6benim için çalıştı, ancak Python 3.5'i hiçbir şekilde etkilemiyor.
GUI Junkie

sudo apt-get install python 3.6.1 > Note, selecting 'libghc-unix-time-dev-0.3.6-1b8cf' for regex '3.6.1' ... Ayrılmış argümanlar birden fazla paket yüklemek için uygun söyler
Clancy Hood

3
Python'um yüklendikten sonra sürüm numarası aynı mı? Sebebi ne olabilir?
Ramesh Pareek

Bu yöntemi kullandım, ancak nereye kurulduğunu bulamıyorum (örn. 3.7 kabuğunun nasıl açılacağı). @RameshPareek bu da sizin probleminiz olabilir. / usr / bin içinde görünmüyor. python is already the newest version (2.7.12-1~16.04). python set to manually installed.herhangi bir fikir?
Bjorks bir numara fan

10
sudo apt-get install python3.6

Bu, python 3'ü yan python 2 boyunca linux'a kurar.

python3

2
Bu, başka bir yanıtı çoğaltır ve yeni bir içerik eklemez. Gerçekten katkıda bulunacak yeni bir şeyiniz yoksa lütfen cevap yazmayın.
DavidPostill

3
üzgünüm sadece yenisini almak için komutu yazmak istedim.
G-Ox7cd

6
Eğer E: Unable to locate package python3.6 E: Couldn't find any package by glob 'python3.6' E: Couldn't find any package by regex 'python3.6'
Kajsa,

1
sudo add-apt-repository ppa: deadsnakes / ppa -y && sudo apt-get güncelleme
ski_squaw

E: Unable to locate package python3.6
karartır

4

Gibi bir komut düşünmeye yakınsın sudo apt-get update(ki bu gerçek bir komuttur, ancak istediğini yapmaz.)

Python'u ve yüklediğiniz her şeyi yükseltmek için, sadece aşağıdaki komutu uygulayın:

sudo apt-get upgrade

Teşekkürler, ama güncelleme komutunu zaten biliyordum, bu yüzden sistemimin güncel olduğunu bildirdim. Belirli uygulamalara yönelik olabilecek bir komut bulmayı umuyordum.
verimlilikIsBliss

apt, bugüne kadar hiçbir şeyi yükseltmezdi, bu yüzden bir fark
yaratmazdı

OP, python'u özellikle güncellemek istiyor . Sahip oldukları tüm paketleri güncellemelerini söylemek tembel ve kötü bir tavsiyedir.
Przemek D


3

Python paketinin 2.7.11+ t0 2.7.12 gibi sadece küçük bir versiyonunu yükseltmeyi düşünüyorsanız, o zaman sudo apt-get install python2.7sizin için yapmalısınız.


2

pyenv sizin için iyi bir seçenek olabilir: https://github.com/yyuu/pyenv


@ Ulidtko'nun cevabı ile ilgili olarak , sistem pitonunu tamamen değiştirmenin olası bir alternatifi, istediğiniz piton versiyonuyla izole edilmiş bir ortam kullanmak olabilir. Bu "sanal ortama" benzer, ancak python için. Bunu daha önce python 2.6'da çalışan eski projeler için ve aynı zamanda python'un eski sürümünden python3'e yükseltirken kullandım.


Bu alana aşina değilim, ancak bunun soruyu nasıl ele aldığını ve sorunu nasıl çözdüğünü açıklayabilir misiniz?
Ben N,

1
@ Ulidtko'nun cevabı ile ilgili olarak ( superuser.com/a/241903/152143 ), sistem pitonunu tamamen değiştirmenin olası bir alternatifi, istediğiniz python versiyonuyla izole edilmiş bir ortam kullanmak olabilir. Bu "sanal ortama" benzer, ancak python için. Bunu daha önce python 2.6'da çalışan eski projeler için ve aynı zamanda python'un eski sürümünden python3'e yükseltirken kullandım.
güzel,

1
apt-get install python

Bunun çalışması gerektiğine inanıyorum. Deponuzdaki uygun paket adıyla açık bir şekilde eşleşmesi için 'python'u değiştirmeniz gerekecektir.


1

Hepimizin bildiği gibi Python 3.5 sürümü ile birlikte geliyor. Bu nedenle Python 2.7'yi (varsayılan olarak Ubuntu 16.04'te bulunan) Python 3.5'e güncellemek çok kolaydır.

Aşağıdaki adımları izleyin:

  1. Terminali aç.
  2. Sudo komutunu kullanarak kök kullanıcı ol.
  3. Python 2.7 ila 3.5'i güncellemek için aşağıdaki kodu kullanın

    sudo apt-get install python3.5

  4. Sizden izin istenir, sonra Y seçeneğini verin.

  5. İşlemi tamamlayana kadar bekleyin.
  6. komutunu kullanarak ekranı temizle clear
  7. Aşağıdaki komutu kullanarak python sürümünü kontrol edin.

    python -version


1
Lütfen gelecekte doğru biçimlendirmeyi kullanın ve "Bunun size yardımcı olacağını umuyorum" ifadelerinden uzak durun. onlar sadece ses. Soruyu cevaplayarak, soruyu yararlı bir şeyle cevaplamaya çalıştığınız varsayılır. Cevabınızı gözden geçirmeli ve düzeltmedim ve sürecin ekran görüntülerini verdiğim küçük gramer hatalarını düzeltmelisin. Bu sefer sizin için formatlamayı düzelttim, bir daha yapmayacağım, yazarların kendi cevaplarını ve sorularını düzeltmek için tutulması gerektiğine kuvvetle inanıyorum.
Ramhound

Ve bu kadar basit değil, bu sembolik bağları doğru şekilde güncellemiyor, bu yüzden yan yana 3.4 ve 3.5 ile bitiyor. Python2 genellikle yine de python3 ile yan yanadır, Python2'yi Python3'e yükseltmiyoruz, çalışmalarımızı aktarıyoruz.
mckenzm

0

Tek bir LTS sürümünü çalıştırıyorsanız, python'unuz küçük bir sürümün arkasında olabilir, yani 2.7.10 yerine 2.7.5.

Bir olasılık , sistemi yükseltmek olacaktır :

  • set prompt=normaliçinde/etc/update-manager/release-upgrades
  • sistemi yükselt
    • komut satırında, sudo do-release-upgradeyükseltme yöneticisinin en son (= LTS olmayan) sürüme yükseltme yapmak için işini yapması için yazabilirsiniz .
    • GUI çözümü Güncelleme Yöneticisini kullanır.

Yükseltme işleminde her zaman olduğu gibi sürüm notlarına bir göz atın , çünkü yükseltme işlemi birkaç durumda sisteminizi kırabilir, @ Gino'nun yorumuna bakın .


Dostum, değişikliğini denedim ve Ubuntu 14.04 sistemimi kırdı ! Temel olarak, 14.04'ten Ubuntu 15'e güncelleme yapmaya çalıştı ve bunu başarılı bir şekilde gerçekleştiremedi, sistemimi grafik girişinin artık çalışmadığı yarı yolda bıraktı - örneğin, grafik girişi ile giriş yapardım ve tekmeliyordu. Ben de aynı grafiksel girişe geri döndüm. Sadece son bir saatimi harcadım + çözümünüzü düzeltmek için Ubuntu 14.04'ü tekrar makineme yükledim .
Gino

@Gino: Geri bildiriminiz için teşekkür ederiz. Askubuntu.com/questions/612973/… , askubuntu.com/questions/223501/… ve sürüm notlarına göz attınız mı? "AMD'nin fglrx sürücüsü" ile ilgili bir sorun var. Başka bir yardım ister misiniz?
serv-inc

Sanırım öneriniz, normal güvenlik kontrollerini atlatmak, böylece LTS dışı bir versiyona yükseltme yapmak için tehlike oluşturuyor. Bu gün için, yükseltmenin neden başarısız olduğunu bilmiyorum, çünkü tanınabilir herhangi bir hata mesajı göstermedi. Bunun yerine, artık kullanılmayan bir sistemle sona erdi. Doğru hatırlıyorsam, sistemimin çoğunu geri yükleyebilecek belirli ayarlarla Ubuntu kurulumunu yeniden çalıştırdım. Ve bir not olarak, ben profesyonel bir programcıyım, bu yüzden genellikle bir linux sistemindeki yolumu biliyorum.
Gino

@Gino: Bu, LTS'den LTS olmayana geçmek için standart prosedür gibi görünüyor. Yeni sürümlerin farkındalık seviyesini değiştirir. Biri bunu "desteklenen" (normal) sürümler, "sadece uzun vadeli" (LTS) sürümler veya "hiçbir şey" (büyük yükseltme yok) olarak ayarlayabilir . "'Alıntı için bakınız askubuntu.com/questions/240160/… . Sistemin yükseltme yöneticisini kullanıyor, ne yazık ki, sizin durumunuzda, (varsayılan) yükseltme işe yaramadı, bu buggy grafik sürücüsünden kaynaklanıyor olabilir (yukarıdaki bağlantılara bakın)
serv-inc
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.