Thay đổi phiên bản mặc định Python3 trong Ubuntu


72

Tôi đang sử dụng Ubuntu 16.04 LTS. Tôi đã python3cài đặt. Có hai phiên bản được cài đặt python 3.4.3python 3.6. Bất cứ khi nào tôi sử dụng python3lệnh, nó sẽ python 3.4.3mặc định. Tôi muốn sử dụng python 3.6với python3.

python3 --version trình diễn version 3.4.3

Tôi đang cài đặt ansiblemà hỗ trợ version > 3.5. Vì vậy, bất cứ khi nào, tôi gõ ansible trong thiết bị đầu cuối, nó sẽ báo lỗi vìpython 3.4


Lệnh được sử dụng để thực thi python 3.6 là gì?

lệnh là: - python3.6
tiền mã hóa

3
Bạn sudo update-alternatives --config python3nói gì
Mikael Kjær

1
cập nhật thay thế: lỗi: không có lựa chọn thay thế cho python3
tiền mã hóa

Xem bình luận của tôi trong câu trả lời dưới đây về cách sử dụng ansible với một phiên bản cụ thể của python3. Bạn cũng có thể xem xét loại bỏ python 3.4.
Mikael Kjær

Câu trả lời:


96

Từ nhận xét:

sudo update-alternatives --config python

Sẽ cho bạn thấy một lỗi:

update-alternatives: error: no alternatives for python3 

Bạn cần cập nhật update-alternatives, sau đó bạn sẽ có thể đặt phiên bản python mặc định của mình.

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

Sau đó chạy :

sudo update-alternatives --config python

Đặt python3.6 làm mặc định.

Hoặc sử dụng lệnh sau để đặt python3.6 làm mặc định:

sudo update-alternatives  --set python /usr/bin/python3.6

1
Câu trả lời này có thể sẽ phá vỡ apt. Sau khi chọn một phiên bản khác của python hãy thử chạy sudo apt update. Nếu nó cung cấp cho bạn một lỗi như ModuleNotFoundError: No module named 'apt_pkg'bạn muốn đến /usr/lib/python3/dist-packagesvà tạo symlink : ln -s apt_pkg.cpython-{34m,36m}-x86_64-linux-gnu.so.
Giacomo Alzetta

Nó cho tôi một lỗi: $ sudo update-alternatives --set python /usr/bin/python3.6 update-alternatives: error: no alternatives for pythonBất kỳ đề nghị?
Slava Fomin II

1
@ GAD3R Cảm ơn. Tôi đã quản lý để tạo một liên kết tượng trưng theo cách thủ công để trỏ đến Python 3.6. Ngoài ra, tôi không cài đặt 3.7.
Slava Fomin II

Làm cho python3điểm python3.8với phương pháp này đã phá vỡ gnome-terminalcho tôi.
Boris

10

Bạn có thể đạt được điều này bằng cách áp dụng các bước đơn giản dưới đây -

  1. Kiểm tra phiên bản python trên thiết bị đầu cuối - python --version
  2. Nhận quyền người dùng root. Trên loại thiết bị đầu cuối -sudo su
  3. Viết mật khẩu người dùng root
  4. Thực hiện lệnh này để chuyển sang python 3.6 -
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1
  5. Kiểm tra phiên bản trăn - python --version
  6. Làm xong.

1
Hoạt động, đơn giản để đọc và không sử dụng bí danh. +1
Carlos Pinzón

Hoạt động tốt trên Ubuntu 18.04. đơn giản hơn các giải pháp khác cảm ơn rất nhiều
Mohammad Heydari

7

Tạo symlink cho / usr / bin / python3. Trong LinuxMint của tôi:

# 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

6

sử dụng các lệnh này có thể giúp bạn:

  1. kiểm tra phiên bản của trăn: ls /usr/bin/python*
  2. bí danh: alias python='/usr/bin/pythonxx'
  3. đăng nhập lại: . ~/.bashrc
  4. kiểm tra phiên bản python một lần nữa: python --version

cảm ơn nhưng sau khi khởi động lại máy tính, con trăn chính sẽ vẫn là con trăn cũ 2.7
Mohammad Heydari

3

Một câu trả lời dễ dàng là thêm bí danh cho python3.6.

Chỉ cần thêm dòng này vào tệp ~ / .bashrc : alias python3="python3.6", sau đó đóng thiết bị đầu cuối của bạn và mở một cái mới. Bây giờ khi bạn gõ python3 xxxnó được dịch sang python3.6 xxx.

Giải pháp này khắc phục vấn đề của bạn mà không cần phải điều chỉnh hệ thống của bạn quá nhiều.

BIÊN TẬP :

Như Mikael Kjær đã chỉ ra, đây là một cấu hình sai của ansible với hệ thống của bạn.

Như đã thấy ở đây:

Đặt ansible_python_interpretertùy chọn cấu hình thành / usr / bin / python3. Tùy chọn cấu hình ansible_python_interpreter thường được đặt cho mỗi máy chủ là biến hàng tồn kho được liên kết với máy chủ hoặc nhóm máy chủ:

  # 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

Như đã thấy ở đây về tập tin cấu hình:

Thay đổi có thể được thực hiện và sử dụng trong tệp cấu hình sẽ được xử lý theo thứ tự sau:

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

Trên thực tế, tôi đang cài đặt ansible, chỉ hỗ trợ> python 3.5
tiền mã hóa

1
Bạn có thể đặt ansible_python_interpreterbiến để sử dụng python3.6. docs.ansible.com/ansible/latest/python_3_support.html
Mikael Kjær

@ MikaelKjær Tôi vừa thêm nhận xét của bạn vào câu trả lời của tôi

1

nếu bạn có nhiều phiên bản python trong hệ thống của bạn. Bạn chỉ cần cập nhật liên kết tượng trưng của python bên trong/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

Trong ví dụ trên nếu bạn thấy đầu ra của python --versionbạn sẽ nhận được python2.7

Bây giờ hãy cập nhật symlink python bằng lệnh bên dưới-

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

0

cập nhật thay thế là để thay đổi liên kết hệ thống thành liên kết do người dùng xác định / quản trị viên xác định. Nếu bạn có nhiều phiên bản python3 được cài đặt trong hệ thống của bạn và muốn kiểm soát phiên bản python3 nào sẽ được gọi khi python3 được gọi. Làm như sau

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

Chạy bên dưới lệnh nếu bạn muốn thay đổi ưu tiên trong tương lai.

update-alternatives --config python3

Giải trình:-

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

Bạn có thể thay đổi name_of_config thành python4, nhưng sau đó bạn phải gọi các thay thế cập nhật --config với python4 để cấu hình lại.

Sử dụng phương pháp này, bạn có thể kiểm soát riêng phiên bản hệ thống python và phiên bản python3.


0

kiểm tra đầu tiên làm thư mục python3.6

ls /usr/bin/python3.6

nếu bạn có thư mục như python3.6 thì tốt

sau đó cập nhật thay thế

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

Bây giờ cập nhật cấu hình mới cho python3

sudo update-alternatives --config python3

kiểm tra phiên bản trăn

python3 --version


0

Bạn có thể thay đổi liên kết simbolic ln -sf python3.6 python3bên trong /usr/bin. Với điều này khi bạn gọi python3nó sẽ thực thipython3.6

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.