Không thể đặt phiên bản python mặc định thành python3 trong ubfox


145

Tôi đã cố gắng để thiết lập phiên bản python mặc định để python3Ubuntu 16.04. Theo mặc định, nó là python2(2.7). Tôi làm theo các bước dưới đây:

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

nhưng tôi nhận được lỗi sau cho câu lệnh thứ hai,

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.   

Tôi mới sử dụng Ubuntu và không biết tôi đang làm gì sai.


3
Như đã nêu trong cảnh báo, bạn đang thiếu ưu tiên.
tham lam52

6
Cẩn thận không xóa Python 2.7 vì nó sẽ làm tê liệt nhiều cơ sở của hệ điều hành của bạn (từ kinh nghiệm :()
Jacques de Hooge

Tôi đã thực hiện chỉnh sửa câu trả lời của mình liên quan đến lỗi ưu tiên của bạn.
Steampunkery

1
Một lời cảnh báo: Nghe có vẻ là một ý tưởng tồi đối với tôi khi đổi pythonsang Python 3. Cách mặc định để gọi các tập lệnh được viết bằng Python 2 là python my-script-p2.py, trong khi đó python3 my-script-p3.py. Tôi mong đợi nhiều kịch bản hệ thống dựa vào điều này.
jan groth

1
Đối với những người quan tâm đến chủ đề tôi khuyên bạn nên chú ý đến môi trường ảo: docs.python.org/3/tutorial/venv.html Ubuntu 18 LTS của tôi vẫn sử dụng Python 2.7 và, ví dụ: tôi sử dụng môi trường ảo để sử dụng Python 3.X và được cập nhật trong các dự án Django của tôi.
Victor Bjorn

Câu trả lời:


131

Mở tệp .bashrc của bạn nano ~/.bashrc. Nhập alias python=python3vào một dòng mới ở đầu tệp, sau đó lưu tệp bằng ctrl + o và đóng tệp bằng ctrl + x. Sau đó, trở lại loại dòng lệnh của bạn source ~/.bashrc. Bây giờ bí danh của bạn nên là vĩnh viễn.

BIÊN TẬP:

Đối với các lựa chọn thay thế cập nhật, ưu tiên là một số nguyên. Ưu tiên đại diện cho chương trình nào sẽ được sử dụng đầu tiên. Bài viết này tổng hợp tất cả lên khá tốt.


56
Đây là câu trả lời sai. Chỉnh sửa bashrc của bạn không làm điều tương tự như các lựa chọn thay thế cập nhật. Ví dụ: các tập lệnh bắt đầu bằng #!/usr/bin/env pythonsẽ không sử dụng phiên bản trong bashrc. Vui lòng sử dụng câu trả lời của @ Pardhu.
stonewareslord

Tôi đã viết câu trả lời này từ lâu và tôi biết rằng các lựa chọn thay thế cập nhật không giống như thay đổi bashrc. Tôi có thể chỉnh sửa câu trả lời nếu bạn muốn.
Steampunkery

1
Đây là một cảnh báo cho người dùng với câu hỏi này rằng việc thay đổi bí danh không làm điều tương tự. Tùy thuộc vào bạn nếu bạn muốn chỉnh sửa.
stonewareslord

Đây là câu trả lời duy nhất giúp tôi. Tôi đã thử làm 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
Tôi đã làm điều này và nó đã phá vỡ mọi thứ, như virtualenvs. Câu trả lời này đang tạo ra nhiều vấn đề hơn
Kuzeko

292

Dòng thứ hai được đề cập có thể được thay đổi thành

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

Điều này ưu tiên 10 cho đường dẫn của python3. Nhược điểm của chỉnh sửa .bashrctập tin là nó sẽ không hoạt động trong khi sử dụng các lệnh với sudo.

Cập nhật: Vui lòng sử dụng sudotrong khi chạy lệnh như thế này:

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


3
Cách tốt và dễ dàng.
PrakashG

7
Tốt và đúng điểm. "<ưu tiên>" trong thông báo lỗi đã đề xuất nó. BTW, "sudo" thường cần thiết để chạy lệnh cài đặt này.
ywu

4
Giống như ywu đã nói, tôi đã phải chạy "sudo update-thay thế --install / usr / bin / python python / usr / bin / python3 10"
Roy

3
Đây là cách đúng đắn để làm điều đó chắc chắn, nhưng đáng chú ý là việc thay đổi mặc định toàn hệ thống có thể sẽ phá vỡ một số điều. Chẳng hạn, tôi đã phải đi và áp dụng một bản sửa lỗi cho terminator , chỉ hoạt động với python2.
Dale Anderson

1
Không hoạt động hoàn toàn - sau khi lệnh này pythonchạy python3, nhưng python-configvẫn chạy python2-configvà vỡ chung xảy ra
Chris Dodd

35

Để thay đổi Python 3.6.8 làm mặc định trong Ubuntu 18.04 thành Python 3.7.

Cài đặt Python 3.7

Các bước để cài đặt Python3.7 và cấu hình nó làm trình thông dịch mặc định.

  1. Cài đặt gói python3.7 bằng apt-get

    sudo apt-get install python3.7

  2. Thêm Python3.6 & Python 3.7 vào 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. Cập nhật Python 3 để trỏ tới Python 3.7

    sudo update-alternatives --config python3 Nhập 2 cho Python 3.7

  2. Kiểm tra phiên bản của trăn

python3 --v
Python 3.7.1 

3
Bạn có thể muốn bao gồm một cảnh báo rằng điều này có thể phá vỡ phần mềm đóng gói. Python 3.6 là mặc định phân tán và bất kỳ gói phần mềm đi kèm nào cũng sẽ sử dụng phiên bản này.
Tim

Điều này đã giúp tôi. Cảm ơn.
copps jeffry

Tôi có thể thay thế python thành phiên bản 3.7 thay vì python3 không?
Tuần Hồng

@Tim, cách tốt nhất để chăm sóc điều đó là gì?
Shreya

@Wee Hồng, vâng, bạn có thể. Thay vì $ sudo update-thay thế --install / usr / bin / python3 python3 .... bạn chỉ cần thay thế cho $ sudo update-thay đổi --install / usr / bin / python python ..... và sau: sudo update -alterntern --config python.
Arthur Zennig

23

Để thay đổi thành python3, bạn có thể sử dụng lệnh sau trong terminal alias python=python3.


4
Nhưng điều đó chỉ làm việc cho quá trình chạy hiện tại trong thiết bị đầu cuối. Nếu tôi đóng và mở terminal thì nó sẽ đổi thành python2.
RejeeshChandran

2
@RejeeshChandran Hãy xem câu trả lời của Steampunkery
Seraf

14

Một cách an toàn đơn giản sẽ là sử dụng bí danh. Đặt tệp này vào tệp ~ / .bashrc: nếu bạn có trình chỉnh sửa gedit, hãy sử dụng

gedit ~ / .bashrc

để đi vào tệp bashrc và sau đó ở đầu tệp bashrc thực hiện thay đổi sau.

bí danh python = python3

Sau khi thêm ở trên trong tập tin. chạy lệnh dưới đây

nguồn ~ / .bash_aliases hoặc nguồn ~ / .bashrc

thí dụ:

$ trăn

Python 2.7.6

$ python3 - chuyển đổi

Python 3.4.3

$ bí danh python = python3

$ trăn

Python 3.4.3


9

Là một bổ sung bổ sung, bạn cũng có thể thêm bí danh cho pip (trong .bashrc hoặc bash_aliases):

bí danh pip = 'pip3'

Nhiều bạn thấy rằng một bản cài đặt sạch python3 thực sự trỏ đến python3.x nên bạn có thể cần:

bí danh pip = 'pip3.6'
bí danh python = 'python3.6'


8

Đầu tiên Cài đặt python3 và pip3

sudo apt-get install python3 python3-pip

sau đó trong thiết bị đầu cuối của bạn chạy

alias python=python3

Kiểm tra phiên bản của python trong máy của bạn.

python --version

7

Nếu bạn có Ubuntu Focal (20.20), bạn có thể cài đặt python-is-python3:

sudo apt-get install python-is-python3

để thay thế symlink trong /usr/bin/pythonđể trỏ đến /usr/bin/python3.8.


5

Như nó nói, update-alternatives --install cần các đối số <link> <name> <path> và <ưu tiên>.

Bạn có liên kết ( /usr/bin/python), tên ( python) và đường dẫn ( /usr/bin/python3), bạn đang thiếu ưu tiên.

update-alternatives --help nói:

<ưu tiên> là một số nguyên; tùy chọn với số cao hơn có mức độ ưu tiên cao hơn trong chế độ tự động.

Vì vậy, chỉ cần đặt một 100hoặc một cái gì đó ở cuối


5

Làm

cd ~
gedit .bash_aliases

sau đó viết

alias python=python3

hoặc là

alias python='/usr/bin/python3'

Lưu tệp, đóng thiết bị đầu cuối và mở lại.
Bạn sẽ ổn ngay bây giờ! Liên kết


5

Chỉ cần làm theo các bước sau để giúp thay đổi python mặc định thành phiên bản python mới được nâng cấp. Làm việc tốt cho tôi.

  • sudo apt-install python3.7 Cài đặt phiên bản mới nhất của python bạn muốn
  • cd /usr/bin Nhập thư mục gốc nơi python được cài đặt
  • sudo unlink pythonhoặc sudo unlink python3. Hủy liên kết python mặc định hiện tại
  • sudo ln -sv /usr/bin/python3.7 python Liên kết phiên bản python mới tải xuống
  • python --version Kiểm tra phiên bản python mới và bạn tốt để đi

3

Đối với một cách tiếp cận khác không xâm lấn, chỉ dành cho người dùng hiện tại:

# 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 sẽ sẵn sàng trong một vỏ mới.


2

lấy con đường trăn từ

ls /usr/bin/python*

sau đó đặt phiên bản python của bạn

alias python="/usr/bin/python3"

0

Cách tốt nhất trong Ubuntu 18.04 sẽ hoạt động cho tất cả người dùng là

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

Lưu các thay đổi và khởi động lại.

Sau khi khởi động lại phiên bản python 3, bạn có trong hệ thống cùng với python 2.7 sẽ được lấy làm mặc định. Bạn có thể cụ thể hơn bằng cách nói những điều sau trong bí danh nếu bạn có nhiều phiên bản python 3.

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

0

Chỉ cần xóa python-is-python2:

sudo apt purge python-is-python2

Và cài đặt python-is-python3:

sudo apt install python-is-python3

Nó sẽ tự động hóa quá trình chuyển đổi sang python3 mới. Tùy chọn bạn có thể thoát khỏi các gói còn lại sau:

sudo apt autoremove && sudo apt autoclean

0

Để thay đổi Python 3.6.8 làm mặc định trong Ubuntu 18.04 từ Python 2.7, bạn có thể thử công cụ dòng lệnh update-alternatives.

sudo update-alternatives --config python

Nếu bạn gặp lỗi "không có lựa chọn thay thế cho python" thì hãy tự thiết lập một giải pháp thay thế bằng lệnh sau:

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

Thay đổi đường dẫn /usr/bin/python3đến phiên bản python mong muốn của bạn cho phù hợp.

Đối số cuối cùng đã chỉ định mức độ ưu tiên có nghĩa là, nếu không có lựa chọn thay thế thủ công nào được thực hiện thay thế với số ưu tiên cao nhất sẽ được đặt. Trong trường hợp của chúng tôi, chúng tôi đã đặt mức độ ưu tiên 2 cho /usr/bin/python3.6.8và kết quả /usr/bin/python3.6.8là nó được đặt tự động làm phiên bản python mặc định bằng lệnh cập nhật thay thế.

chúng ta có thể chuyển đổi bất kỳ lúc nào giữa các phiên bản thay thế python được liệt kê ở trên bằng cách sử dụng lệnh bên dưới và nhập số lựa chọn:

update-alternatives --config python

-1

Đầu tiên, hãy đảm bảo Python3 được cài đặt trên máy tính của bạn

Đi đến thiết bị đầu cuối của bạn và gõ:

cd ~/ để đi đến thư mục nhà của bạn

Nếu bạn chưa thiết lập .bash_profile, hãy nhập touch .bash_profile.bash_profile.

Hoặc, gõ open -e .bash_profileđể chỉnh sửa tập tin.

Sao chép và lưu alias python=python3trong .bash_profile.

Đóng và mở lại Terminal của bạn. Sau đó nhập lệnh sau để kiểm tra xem Python3 có phải là phiên bản mặc định của bạn không:

python --version

Bạn sẽ thấy python 3.xy là phiên bản mặc định của bạn.

Chúc mừng!


phương pháp này đã được mô tả trong câu trả lời ưa thích cho câu hỏi này. và câu trả lời của bạn không đóng góp gì cả.
ba
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.