Tidak dapat mengatur versi python default ke python3 di ubuntu

146

Saya mencoba untuk mengatur versi python default ke python3dalam Ubuntu 16.04. Secara default adalah python2(2.7). Saya mengikuti langkah-langkah di bawah ini:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

tapi saya mendapatkan kesalahan berikut untuk pernyataan kedua,

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

Saya baru di Ubuntu dan tidak tahu apa yang saya lakukan salah.

RejeeshChandran
sumber
3
Seperti yang dinyatakan dalam peringatan, Anda kehilangan prioritas.
serakah52
6
Berhati-hatilah untuk tidak menghapus Python 2.7 karena akan melumpuhkan banyak fasilitas OS Anda (dari pengalaman :()
Jacques de Hooge
Saya mengedit jawaban saya sehubungan dengan kesalahan prioritas Anda.
Steampunkery
1
Sebuah kata peringatan: Kedengarannya seperti ide buruk bagi saya untuk mengubah pythonke Python 3. Cara standar untuk memanggil skrip yang ditulis dengan Python 2 adalah python my-script-p2.py, sementara itu python3 my-script-p3.py. Saya berharap banyak skrip sistem untuk mengandalkan ini.
jan groth
1
Bagi mereka yang tertarik pada topik saya akan merekomendasikan untuk memperhatikan lingkungan virtual: docs.python.org/3/tutorial/venv.html Ubuntu 18 LTS saya masih menggunakan Python 2.7 dan, misalnya, saya menggunakan lingkungan virtual untuk menggunakan Python 3.X dan selalu mutakhir dalam proyek Django saya.
Victor Bjorn

Jawaban:

136

Buka file .bashrc Anda nano ~/.bashrc. Ketik alias python=python3pada baris baru di bagian atas file kemudian simpan file dengan ctrl + o dan tutup file dengan ctrl + x. Kemudian, kembali pada tipe baris perintah Anda source ~/.bashrc. Sekarang alias Anda harus permanen.

EDIT:

Untuk memperbarui alternatif, prioritasnya adalah bilangan bulat. Prioritas mewakili program mana yang harus digunakan pertama kali. Artikel ini merangkum semuanya dengan cukup baik.

Steampunkery
sumber
60
Ini jawaban yang salah. Mengedit bashrc Anda tidak melakukan hal yang sama dengan pembaruan-alternatif. Misalnya, skrip yang dimulai dengan #!/usr/bin/env pythontidak akan menggunakan versi di bashrc. Silakan gunakan jawaban @ Pardhu.
stonewareslord
Saya menulis jawaban ini sejak lama, dan saya sadar bahwa pembaruan alternatif tidak sama dengan mengubah bashrc. Saya dapat mengedit jawabannya jika Anda mau.
Steampunkery
1
Ini lebih merupakan peringatan bagi pengguna dengan pertanyaan ini bahwa mengubah alias tidak melakukan hal yang sama. Terserah Anda jika ingin mengedit.
stonewareslord
Ini satu-satunya jawaban yang membantu saya. Saya mencoba melakukannya sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5.2. But I got: update-alternatives: --install needs <link> <name> <path> <priority> Use 'update-alternatives --help' for program usage information.
alexchenco
1
Saya melakukan ini dan itu merusak banyak hal, seperti virtualenvs. Jawaban ini menciptakan lebih banyak masalah
Kuzeko
295

Baris kedua yang disebutkan dapat diubah menjadi

update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Ini memberikan prioritas 10 untuk jalur python3. Kerugian dari mengedit .bashrcfile adalah tidak akan berfungsi saat menggunakan perintah sudo.

Pembaruan: Silakan gunakan sudosaat menjalankan perintah seperti ini:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

Pardhu
sumber
3
Jalan keluar yang bagus dan mudah.
PrakashG
7
Bagus dan tepat sasaran. "<priority>" di pesan kesalahan sudah menyarankannya. BTW, "sudo" biasanya diperlukan untuk menjalankan perintah instalasi ini.
ywu
4
Seperti kata ywu, saya harus menjalankan "sudo update-alternative --install / usr / bin / python python / usr / bin / python3 10"
Roy
3
Ini adalah cara yang tepat untuk melakukannya dengan pasti, tetapi perlu dicatat bahwa mengubah standar sistem secara keseluruhan mungkin akan merusak beberapa hal. Sebagai contoh, saya harus pergi dan menerapkan perbaikan ke terminator , yang hanya berfungsi dengan python2.
Dale Anderson
1
Tidak berfungsi sepenuhnya - setelah perintah ini pythonberjalan python3, tetapi python-configmasih berjalan python2-configdan kerusakan umum terjadi
Chris Dodd
36

Untuk mengubah Python 3.6.8 sebagai default di Ubuntu 18.04 ke Python 3.7.

Instal Python 3.7

Langkah-langkah untuk menginstal Python3.7 dan mengkonfigurasinya sebagai penerjemah default.

  1. Instal paket python3.7 menggunakan apt-get

    sudo apt-get install python3.7

  2. Tambahkan Python3.6 & Python 3.7 ke update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. Perbarui Python 3 untuk menunjuk ke Python 3.7

    sudo update-alternatives --config python3 Masukkan 2 untuk Python 3.7

  2. Uji versi python

python3 --v
Python 3.7.1 
Purushottam Prabhakar
sumber
3
Anda mungkin ingin memasukkan peringatan bahwa ini dapat merusak perangkat lunak paket. Python 3.6 adalah default terdistribusi dan paket perangkat lunak apa pun yang dibundel juga akan menggunakan versi ini.
Tim
Ini membantu saya. Terima kasih.
jeffry copps
Bisakah saya mengganti python ke versi 3.7 bukannya python3?
Wee Hong
@Tim, apa cara terbaik untuk mengatasinya?
Shreya
@ Wah Hong, ya kamu bisa. Alih-alih $ sudo update-alternative --install / usr / bin / python3 python3 .... Anda hanya mengganti ke $ sudo update-alterative --install / usr / bin / python python ..... dan setelah: sudo perbarui -ternatif --config python.
Arthur Zennig
23

Untuk mengubah ke python3, Anda dapat menggunakan perintah berikut di terminal alias python=python3.

DanteVoronoi
sumber
4
Tetapi itu hanya bekerja untuk proses yang sedang berjalan di terminal. Jika saya menutup dan membuka terminal itu akan berubah kembali ke python2.
RejeeshChandran
2
@RejeeshChandran Lihatlah jawaban Steampunkery
Seraf
13

Cara aman sederhana adalah dengan menggunakan alias. Tempatkan ini ke file ~ / .bashrc: jika Anda menggunakan editor gedit

gedit ~ / .bashrc

untuk masuk ke file bashrc dan kemudian di bagian atas file bashrc buat perubahan berikut.

alias python = python3

Setelah menambahkan di atas dalam file. jalankan perintah di bawah ini

source ~ / .bash_aliases atau sumber ~ / .bashrc

contoh:

$ python --version

Python 2.7.6

$ python3 --version

Python 3.4.3

$ alias python = python3

$ python --version

Python 3.4.3

Khan
sumber
9

Sebagai tambahan tambahan, Anda juga dapat menambahkan alias untuk pip (dalam .bashrc atau bash_aliases):

alias pip = 'pip3'

Anda banyak menemukan bahwa instalasi bersih python3 sebenarnya menunjuk ke python3.x sehingga Anda mungkin perlu:

alias pip = 'pip3.6'
alias python = 'python3.6'

Paraic
sumber
7

Pertama Instal python3 dan pip3

sudo apt-get install python3 python3-pip

kemudian dalam menjalankan terminal Anda

alias python=python3

Periksa versi python di mesin Anda.

python --version

sumber
7

Jika Anda memiliki Ubuntu Focal (20.20) Anda dapat menginstal python-is-python3:

sudo apt-get install python-is-python3

untuk mengganti symlink /usr/bin/pythonke menunjuk ke /usr/bin/python3.8.

silviot
sumber
5

Seperti dikatakan, update-alternatives --install perlu argumen <link> <name> <path> dan <priority>.

Anda memiliki tautan ( /usr/bin/python), nama ( python), dan jalur (/usr/bin/python3 ), Anda kehilangan prioritas.

update-alternatives --help mengatakan:

<priority> adalah bilangan bulat; opsi dengan angka yang lebih tinggi memiliki prioritas lebih tinggi dalam mode otomatis.

Jadi, letakkan saja 100sesuatu di bagian akhir

pengguna7502402
sumber
5

Melakukan

cd ~
gedit .bash_aliases

lalu tulis juga

alias python=python3

atau

alias python='/usr/bin/python3'

Simpan file, tutup terminal dan buka lagi.
Kamu seharusnya baik-baik saja sekarang! Tautan

Rika
sumber
5

Cukup ikuti langkah-langkah ini untuk membantu mengubah python default ke versi python yang baru ditingkatkan. Bekerja dengan baik untuk saya.

  • sudo apt-install python3.7 Instal python versi terbaru yang Anda inginkan
  • cd /usr/bin Masukkan direktori root tempat python diinstal
  • sudo unlink python atau sudo unlink python3 . Putuskan tautan default python saat ini
  • sudo ln -sv /usr/bin/python3.7 python Tautkan versi python yang baru diunduh
  • python --version Periksa versi python baru dan Anda siap melakukannya
Shorya Sharma
sumber
3

Untuk pendekatan non-invasif, hanya pengguna saat ini:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip akan siap di shell baru.

tdihp
sumber
2

dapatkan jalur python dari

ls /usr/bin/python*

kemudian atur versi python Anda

alias python="/usr/bin/python3"
Pradeep Karunathilaka
sumber
0

Cara terbaik di ubuntu 18.04 yang akan bekerja untuk semua pengguna adalah

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

Simpan perubahan dan mulai ulang.

Setelah me-restart versi python 3 yang Anda miliki dalam sistem bersama dengan python 2.7 akan dianggap sebagai default. Anda bisa lebih spesifik dengan mengatakan yang berikut di alias jika Anda memiliki beberapa versi python 3.

sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6
Mian Asbat Ahmad
sumber
0

Cukup hapus python-is-python2:

sudo apt purge python-is-python2

Dan instal python-is-python3:

sudo apt install python-is-python3

Ini akan mengotomatiskan proses transisi ke python3 baru. Secara opsional Anda dapat menyingkirkan paket yang tersisa nanti:

sudo apt autoremove && sudo apt autoclean
Farab Alipanah
sumber
0

Untuk mengubah Python 3.6.8 sebagai default di Ubuntu 18.04 dari Python 2.7 Anda dapat mencoba alat baris perintah update-alternatives.

sudo update-alternatives --config python

Jika Anda mendapatkan kesalahan "tidak ada alternatif untuk python" maka buat sendiri alternatif dengan perintah berikut:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

Ubah jalur /usr/bin/python3ke versi python yang Anda inginkan sesuai.

Argumen terakhir menentukan prioritas artinya, jika tidak ada pemilihan alternatif manual dibuat alternatif dengan nomor prioritas tertinggi akan ditetapkan. Dalam kasus kami, kami telah menetapkan prioritas 2 untuk /usr/bin/python3.6.8dan hasilnya /usr/bin/python3.6.8ditetapkan sebagai versi python default secara otomatis oleh perintah pembaruan-alternatif.

kita dapat kapan saja beralih antara versi alternatif python yang terdaftar di atas menggunakan perintah di bawah ini dan memasukkan nomor pilihan:

update-alternatives --config python
Ranjeet Singh
sumber
-1

Pada awalnya, Pastikan Python3 diinstal di komputer Anda

Buka terminal Anda dan ketik:

cd ~/ untuk pergi ke direktori home Anda

Jika Anda belum menyiapkan .bash_profile, ketikkan touch .bash_profileuntuk membuat .bash_profile Anda.

Atau, ketik open -e .bash_profileuntuk mengedit file.

Salin dan simpan alias python=python3di .bash_profile.

Tutup dan buka kembali Terminal Anda. Kemudian ketik perintah berikut untuk memeriksa apakah Python3 adalah versi default Anda sekarang:

python --version

Anda harus melihat python 3.xy adalah versi default Anda.

Bersulang!

nurealam siddiq
sumber
metode ini sudah dijelaskan dalam jawaban pilihan untuk pertanyaan ini. dan jawaban Anda tidak berkontribusi apa pun.
tripulse