Ubah versi default Python3 di Ubuntu

73

Saya menggunakan Ubuntu 16.04 LTS. Saya telah python3menginstal Ada dua versi yang diinstal, python 3.4.3dan python 3.6. Setiap kali saya menggunakan python3perintah, dibutuhkan python 3.4.3secara default. Saya ingin menggunakan python 3.6dengan python3.

python3 --version menunjukkan version 3.4.3

Saya menginstal ansibleyang mendukung version > 3.5. Jadi, kapan pun, saya mengetik ansible di terminal, ia melempar kesalahan karenapython 3.4

codeclue
sumber
Apa perintah yang digunakan untuk mengeksekusi python 3.6?
perintahnya adalah: - python3.6
codeclue
3
Apa yang kamu sudo update-alternatives --config python3katakan?
Mikael Kjær
1
pembaruan-alternatif: kesalahan: tidak ada alternatif untuk python3
codeclue
Lihat komentar saya di jawaban di bawah ini tentang cara menggunakan ansible dengan versi python3 tertentu. Anda juga dapat mempertimbangkan menghapus python 3.4.
Mikael Kjær

Jawaban:

99

Dari komentar:

sudo update-alternatives --config python

Akan menampilkan kesalahan:

update-alternatives: error: no alternatives for python3 

Anda perlu memperbarui update-alternatives, maka Anda akan dapat mengatur versi python default Anda.

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

Lalu lari :

sudo update-alternatives --config python

Setel python3.6 sebagai default.

Atau gunakan perintah berikut untuk menetapkan python3.6 sebagai default:

sudo update-alternatives  --set python /usr/bin/python3.6
GAD3R
sumber
1
Jawaban ini mungkin akan pecah apt. Setelah memilih versi python yang berbeda coba jalankan sudo apt update. Jika memberikan kesalahan seperti ModuleNotFoundError: No module named 'apt_pkg'Anda ingin pergi ke /usr/lib/python3/dist-packagesdan menciptakan symlink: ln -s apt_pkg.cpython-{34m,36m}-x86_64-linux-gnu.so.
Giacomo Alzetta
Ini memberi saya kesalahan: $ sudo update-alternatives --set python /usr/bin/python3.6 update-alternatives: error: no alternatives for pythonAda saran?
Slava Fomin II
1
@ GAD3R Terima kasih. Saya sudah berhasil membuat symlink secara manual untuk menunjuk ke Python 3.6. Juga, saya tidak menginstal 3,7.
Slava Fomin II
Membuat python3titik python3.8dengan metode ini pecah gnome-terminalbagi saya.
Boris
10

Anda dapat mencapai ini dengan menerapkan langkah-langkah sederhana di bawah ini -

  1. Periksa versi python di terminal - python --version
  2. Dapatkan hak istimewa pengguna root. Pada tipe terminal -sudo su
  3. Tulis kata sandi pengguna root
  4. Jalankan perintah ini untuk beralih ke python 3.6 -
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. Periksa versi python - python --version
  6. Selesai.
Vineet Jain
sumber
1
Bekerja, mudah dibaca dan tidak menggunakan alias. +1
Carlos Pinzon
Berfungsi dengan baik di Ubuntu 18.04. begitu sederhana dari solusi lainnya. terima kasih banyak
Mohammad Heydari
7

menggunakan perintah ini dapat membantu Anda:

  1. periksa versi python: ls /usr/bin/python*
  2. alias: alias python='/usr/bin/pythonxx'
  3. masuk kembali: . ~/.bashrc
  4. periksa versi python lagi: python --version
Kadal air
sumber
terima kasih tetapi setelah menyalakan kembali komputer python utama akan tetap menjadi ex python 2.7
Mohammad Heydari
7

Buat symlink untuk / usr / bin / python3. Di LinuxMint saya:

# ls -lh /usr/bin/python3 /usr/bin/python
lrwxrwxrwx 1 root root 9 ноя 24  2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root 9 сен  6  2017 /usr/bin/python3 -> python3.5

# mv /usr/bin/python
# cp /usr/bin/python3 /usr/bin/python
# python --version
Python 3.5.2
nabi sheyhov
sumber
3

Jawaban yang mudah adalah menambahkan alias untuk python3.6.

Tambahkan saja baris ini di file ~ / .bashrc:, alias python3="python3.6"lalu tutup terminal Anda dan buka yang baru. Sekarang ketika Anda mengetiknya python3 xxxakan diterjemahkan python3.6 xxx.

Solusi ini memperbaiki masalah Anda tanpa harus terlalu banyak mengubah sistem Anda.

SUNTING :

Seperti yang ditunjukkan Mikael Kjær , ini adalah kesalahan konfigurasi yang dimungkinkan oleh sistem Anda.

Seperti yang terlihat di sini:

Atur ansible_python_interpreteropsi konfigurasi ke / usr / bin / python3. Opsi konfigurasi ansible_python_interpreter biasanya ditetapkan per-host sebagai variabel inventaris yang terkait dengan host atau grup host:

  # Example inventory that makes an alias for localhost that uses python3
  [py3-hosts]
  localhost-py3 ansible_host=localhost ansible_connection=local

  [py3-hosts:vars]
  ansible_python_interpreter=/usr/bin/python3

Seperti yang terlihat di sini tentang file konfigurasi:

Perubahan dapat dibuat dan digunakan dalam file konfigurasi yang akan diproses dalam urutan sebagai berikut:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

sumber
Sebenarnya, saya menginstal ansible, yang hanya mendukung> python 3.5
codeclue
1
Anda dapat mengatur ansible_python_interpretervariabel untuk menggunakan python3.6 Anda. docs.ansible.com/ansible/latest/python_3_support.html
Mikael Kjær
@ MikaelKjær Saya baru saja menambahkan komentar Anda ke jawaban saya
2

jika Anda memiliki beberapa versi python di sistem Anda. Anda hanya perlu memperbarui tautan simbolis python di dalamnya/usr/bin/

root@irshad:/usr/bin# ls -lrth python*
lrwxrwxrwx 1 root root    9 Apr 16  2018 python -> python2.7
-rwxr-xr-x 1 root root 3.6M Nov 12  2018 python2.7
-rwxr-xr-x 2 root root 4.4M May  7 14:58 python3.6

Pada contoh di atas jika Anda melihat output python --versionAnda akan mendapatkan python2.7

Sekarang perbarui symlink python menggunakan perintah di bawah ini-

root@irshad:/usr/bin# unlink python
root@irshad:/usr/bin# ln -s /usr/bin/python3.6 python
root@irshad:/usr/bin# python --version
Python 3.6.8
IRSHAD
sumber
0

pembaruan-alternatif adalah mengubah symlink sistem ke symlink yang didefinisikan pengguna / admin. Jika Anda memiliki beberapa versi python3 yang terinstal di sistem Anda dan ingin mengontrol versi python3 yang akan dipanggil ketika python3 dipanggil. Lakukan yang berikut

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.4 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2

Jalankan perintah di bawah ini jika Anda ingin mengubah prioritas di masa depan.

update-alternatives --config python3

Penjelasan:-

sudo update-alternatives --install <symlink_origin> <name_of_config> <symlink_destination> <priority>

Anda dapat terus mengubah name_of_config menjadi python4, tetapi kemudian Anda harus memohon pembaruan-alternatif --config dengan python4 untuk mengkonfigurasi ulang.

Dengan menggunakan pendekatan ini Anda dapat mengontrol versi sistem python dan versi python3 secara terpisah.

cerdas
sumber
0

cek pertama apakah Anda folder python3.6

ls /usr/bin/python3.6

jika Anda memiliki folder seperti python3.6 bagus untuk pergi

kemudian perbarui-alternatif

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1

sekarang perbarui config baru untuk python3

sudo update-alternatives --config python3

periksa versi python

python3 --version

mmblack
sumber
0

Anda dapat mengubah tautan simbolik dengan ln -sf python3.6 python3di dalam /usr/bin. Dengan ini ketika Anda menelepon python3itu akan dijalankanpython3.6

SPAWN35
sumber