Ubuntu 18.04'e yükselttikten sonra varsayılan olarak python3'e nasıl güvenli bir şekilde geçilir


16

Yana python3Ubuntu 18.04 varsayılan piton sürümüdür ve python2taze bir Ubuntu 18.04 yüklemesinde varsayılan olarak gönderilmez, nasıl yapabilirsiniz python3(16.04 itibaren) Ubuntu 18.04 geçişten sonra varsayılan. Şu anda, yükseltmeden sonra python2hala varsayılan (örn. pythonKomut yönlendirir python2vb.). Bununla birlikte, pythonpaketin temizlenmesi, ona güvenen çok fazla paketin kaldırılmasına neden olur, bu nedenle bu bir seçenek değildir.

İdeal olarak, python2bağımlılığı olabildiğince kaldırmak istiyorum . Belki yükseltme işlemi, hala python2bağımlılıklara gerçekten bağlı olup olmadıklarını ve böylece python2eşdeğer bir python3bağımlılıkla değiştirilebilecek tüm bağımlılıkları toplayıp toplamayacakları (yükseltme ile çözülecek) olsun, tüm paketleri kontrol edecek şekilde tasarlanabilir .


Lütfen yeni ifadeyi kontrol edin. Önceki ne soruyorduk biraz belirsiz. Bunu yayınınızın başlığından çıkarmaya çalıştım.
Juan Antonio

@JuanAntonio düzenlemesi için çok teşekkürler. Düzenlemelerin çoğu iyi görünüyor. Bu soruları doğru yöne getirmek için bazı düzeltmeler yaptık.
zazi

Bu güvenli mi, python2'yi kaldırmanın veya bırakmanın sonu nedir? Eğer oradaysa, o zaman bir şeye ihtiyaç duyar!
George Udosen

2
Eğer bazı ek paketi yüklü (veya zaten yüklü söz konusu paketleri ile yükseltme yaptım) hala python 2. gerektirir çünkü Aslında piton 2 3.x olduğu Yani eğer varsa o kadar, öyle, 18.04 varsayılan olarak yüklü değildir varsayılan bu, arşivde 2.x kullanan başka bir şey olmadığı anlamına gelmez. 20.04 artık python 2.x'e sahip olmayacak, çünkü artık o noktada yukarı akış tarafından desteklenmeyecek.
dobey

"python2 kaldırmanın sonu nedir" - oldukça temiz bir sistem. yükseltmeden sonra bir şekilde kırılmış python kurulumlarım.
zazi

Yanıtlar:


17

Bu yazı biraz eski, ama daha iyi bir alternatif olduğuna inanıyorum: enter update-alternatives. Aşağıdakiler, /usr/bin/pythonvarsayılan ayarınızı 2,7 olarak ayarlar, ancak istediğiniz zaman 3,6 kullanılabilir olur:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 10

Buradaki en yüksek öncelik, "otomatik" seçim olarak kullanılır, /usr/bin/pythonancak koşarak kolayca geçiş yapabilirsiniz sudo update-alternatives --config python.


1
güzel cevap. benim durumumda, python2.7 nodejs / npm tarafından kuruluyordu ve bir şekilde varsayılan olarak ayarlanmıştı python. Ben kullanılan sudo update-alternatives --remove-all pythontüm piton kaldırmak için, sonra kullanmak istediğiniz tek piton eklendi sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 10. Ayrıca bilmek sudo update-alternatives --list pythonne iyi olduğunu görmek.
philshem

1
ayrıca yapmak isteyebilirsiniz sudo apt install python3-pipvesudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
Daniel

11

Python2'yi tamamen kaldırmak için, python2.x-minimaltarafından yapılan paketi temizlemeniz gerekir.

sudo apt purge python2.x-minimal

x yerine sisteminizdeki python 2'nin tam sürümünü kullanabilirsiniz. Ancak, yükseltme işleminden sonra bile python 2'ye bağımlı olan paketleri taşıdığınızdan, diğer paketlerin kaldırıldığından emin olun ve bu paketler de kaldırılacak ve çalışmayı bırakacaktır.


'Varsayılan' python yorumlayıcısı diye bir şey yoktur, çünkü sadece gerçek dosyanın hangi /usr/bin/pythonnoktaya işaret ettiğine bağlıdır, bunu python olarak değiştirmek lniçin bağlantıyı güncellemek için komutu kullanın, örneğin diyelim ki python 3.6'ya işaret etmek istiyorsunuz

sudo ln -sfn /usr/bin/python3.6 /usr/bin/python

Alternatif olarak, bunu yalnızca kullanıcınız için istiyorsanız, bunu sizin takma adınız olarak ayarlayabilirsiniz .bashrc, bunu yapmak için, ~/.bashrcseçtiğiniz düzenleyicinizde açın ve aşağıdaki satırı ekleyin

alias python='python3.6' 

"yükseltme işleminden sonra bile hala python 2'ye bağlı paketler taşımış olabilirsiniz" <- evet, ve niyetim bu bağımlılıktan kurtulmaktır, çünkü Ubuntu 18.04 python2varsayılanları kullanarak bağımlılık olmadan çalıştırıyor. python3bağımlılıkları / paketler.
zazi

1
Bu güvenli mi, python2'yi kaldırmanın veya bırakmanın sonu nedir? Eğer oradaysa, o zaman bir şeye ihtiyaç duyar!
George Udosen

0

Benim 16.04 /usr/bin/pythonsadece bir bağlantı olduğunu, /usr/bin/python2.7bu yüzden sadece işaret etmek için bu bağlantıyı değiştirmek zorunda olacağını varsayalım (tabii ki /usr/bin/python3.xyeterli x).


Ayrıca taniyabilir /usr/bin/pythoniçin /usr/bin/python3yüklü en son python3 sürümüne bir bağlantısıdır. Veya yalnızca bir takma ad veya bir işlev ~/.bashrc. Tonlarca seçenek ;-)
Kev Inski

hayır, sanırım, burada yapmak istediğim şey bu değil. python2Sistemimden kurtulmak istiyorum (yeni bir ubuntu 18.04 yüklerken varsayılan durum olduğu için python3, varsayılan ve varsayılan olarak python2yüklü değil)
zazi

2
@zazi Tasfiyeyi tavsiye etmem python2. Diğer birçok paket buna bağlı gibi görünüyor. python2Kurulu tutarak dezavantajınız var mı?
Kev Inski

python2Gerçekten gerekliyse yüklü bir dezavantajım yok , ancak açıkça python3varsayılan olarak ayarlamak istiyorum , yani python2mümkün olduğunca sık kaldırmak (ve Ubuntu 18.04'ün temiz bir yüklemesi bunun mümkün olduğunu gösteriyor).
zazi

Gerçekten de öyle.
Kev Inski
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.