Saya ingin memutakhirkan dari Ubuntu 16.04.5 LTS ke 18.04, jadi jalankan sudo do-release-upgrade
. Setelah mengunduh dan mengekstrak, bionic.tar.gz
saya mendapatkan:
Can not upgrade
Your python3 install is corrupted. Please fix the '/usr/bin/python3'
symlink.
Saya melihat Bagaimana cara memperbaiki "instalasi python rusak"? jadi saya memang sudo ln -sf /usr/bin/python3.6 /usr/bin/python3
berpikir bahwa itu akan menjadi masalah yang serupa. Tapi itu tidak berhasil (pesan kesalahan masih sama).
Saya punya beberapa versi python:
$ ls /usr/lib | grep python
python2.7
python3
python3.5
python3.6
$ update-alternatives --display python3
python3 - auto mode
link best version is /usr/bin/python3.6
link currently points to /usr/bin/python3.6
link python3 is /usr/bin/python3
/usr/bin/python3.5 - priority 1
/usr/bin/python3.6 - priority 2
Bagaimana cara saya memperbaikinya python3
?
upgrade
python3
do-release-upgrade
mRcSchwering
sumber
sumber
Jawaban:
Anda perlu menggunakan versi Python 3 default untuk 16.04. Itu 3,5 , bukan 3,6. Jadi jalankan:
Jika itu tidak berhasil, coba instal ulang
python3
paket.By the way,
update-alternatives --display python3
harus memberi Andaupdate-alternatives: error: no alternatives for python3
. Versi berbeda dari Python bukanlah alternatif di Ubuntu.sumber
Saya baru saja mengalami masalah ini di Pop! _OS 18.04, mencoba memutakhirkan ke 18.10, dan ternyata masalahnya terletak pada symlink untuk
/usr/bin/python
dan bukan untuk/usr/bin/python3
. Saya telah/usr/bin/python3.6
mengkonfigurasi sebagai alternatif untukpython
(tidakpython3
), dan ketika saya mengubah ini, maka saya bisa berjalando-release-upgrade
seperti yang diharapkan.Saya berharap pesan kesalahan menunjuk ke
python
dan tidakpython3
.Sebelumnya, dengan masalah:
Saya memperbaikinya dengan cara ini:
Lihat juga komentar di bawah ini yang menjelaskan solusi yang lebih tepat yang juga menjelaskan dengan lebih baik apa yang sedang terjadi dan bagaimana cara memperbaikinya.
sumber
update-alternatives --remove-all python
jelas merupakan suatu keharusan yang tidak perlu: Yang perlu Anda lakukan hanyalah menggunakanupdate-alternatives --config python
untukpython
menunjuk ke yang terbarupython2.*
(mis.python2.7
), Lalu menggunakanupdate-alternatives --config python3
untukpython3
menunjuk ke spesifikpython3.6
- yang merupakan versi default Python 3 untuk 18.04.gnome-terminal
,update-manager
, dll Sebaliknya menggunakan lingkungan virtual (dokumentasi di sini dan di sini )Saya mengamati pesan kesalahan ini pada Windows 10 1903 menjalankan WSL Ubuntu ketika saya ingin meningkatkan dari 16,04 LTS ke 18,04 LTS .
Setelah
do-release-upgrade
gagal, saya menggantipython
alternatif untuk setiap pilihan yang ditawarkanupdate-alternatives --config python
dan menjalankan perintah upgrade lagi. Itu tidak membantu.Kemudian saya memeriksa file log
/var/log/dist-upgrade/main.log
yang berisi barisJadi meskipun pesan kesalahan menyebutkan python3 , masalahnya adalah tentang python2 .
Skrip pemutakhiran memeriksa adanya
/usr/bin/python
tautan/usr/bin/python2
, lihat kode sumber diDistUpgrade/DistUpgradeController.py
sini: ubuntu launchpadJadi salah satu solusinya adalah menghapus python sepenuhnya dari sistem alternatif dan menambahkan tautan secara manual, seperti dijelaskan dalam jawaban paling populer.
Jika Anda tidak ingin menghapus python dari sistem alternatif, cukup ubah tautan hanya untuk saat selama proses pemutakhiran:
Ini berhasil untuk saya.
Selama proses peningkatan, tautan secara otomatis diperbaiki. Jadi ketika pemutakhiran selesai, itu menunjuk ke entri python di direktori alternatif:
Sunting: untuk informasi menyeluruh, masalah ini mungkin juga muncul jika Anda memutakhirkan dari 18,04 LTS menjadi 19,04 dan server web berlaku untuk situasi ini juga.
sumber
Pada dasarnya solusi untuk masalah ini terdiri dari membuat
/usr/bin/python
titik ke versi yang tepat dari Python yang diharapkan rilis Ubuntu Anda (misalnya, dalam 16,04 adalah Python2.7 dan pada 18,04 adalah Python3.6).Jika Anda memiliki beberapa versi Python yang terinstal di sistem Anda, Anda mungkin menggunakannya
update-alternatives
untuk mengelolanya. Tidak masalah banyak alternatif default Anda untuk Python adalah versi yang tepat yang diharapkan sistem Anda (3,6 di Ubuntu 18,04), itu tidak akan berfungsi.Alasan mengapa ini tidak berhasil adalah bahwa, ketika menggunakan
update-alternatives
,/usr/bin/python3
menunjuk ke/etc/alternatives/python3
, dan tampaknya itu tidak persis sama dengan/usr/bin/python3
menunjukkan/usr/bin/python3.6
.Itulah sebabnya solusi untuk masalah ini sering kali terdiri dari berhenti mengelola versi Python3 Anda
update-alternatives
dan/usr/bin/python3
menunjukkan versi yang tepat dari Python3 yang diharapkan oleh sistem Anda.sumber
/usr/bin/python
tidak ada pada instalasi bersih 18,04, tetapi itu terjadi jika Anda melakukan upgrade bukannya instalasi bersih atau menginstalpython
paket, dalam hal ini harus Python 2.7, bukan 3.6. Lihat PEP 394 .update-alternatives
. Ini karena OS mengandalkan versi tertentu yang sedang diinstal.