Làm thế nào để 'python' chương trình thực hiện lệnh Python 3?

Những python chương trình hiện lệnh Python 2. Python 3 có thể được thực hiện bằng cách sử dụng python3 lệnh. Làm thế nào có thể Python 3 được thực hiện bằng cách sử dụng python lệnh?

Bạn có thể cài đặt một hệ thống-rộng gói:

$ sudo apt install python-is-python3

Xem hãy cẩn thận:python-là-python3 gói trong windows 20.04 - nó là gì và nó thực sự làm gì?

Một đơn giản cách an toàn sẽ được sử dụng một bí danh. Nơi này vào ~/.bashrc hay ~/.bash_aliases tập tin:

alias python=python3

Sau khi thêm trên trong các tập tin, chạy source ~/.bashrc hay source ~/.bash_aliases.

Ví dụ::

$ python --versionPython 2.7.6$ python3 --versionPython 3.4.3$ alias python=python3$ python --versionPython 3.4.3

Để phá vỡ những bí danh sử dụng những command được xây dựng-chỉ huy:

$ command python --versionPython 2.7.6

Một cách để phá vỡ những bí danh là để sử dụng \ trước khi lệnh.

$ \python --version Python 2.7.6

Đến vô hiệu hóa bí danh trong các vỏ hiện tại sử dụng những unalias được xây dựng-chỉ huy:

$ unalias python$ python --versionPython 2.7.6

Trên Ubuntu 20.04+ chỉ cần cài đặt python-is-python3 gói:

sudo apt install python-is-python3

Trên đầu của bạn, bạn có thể ngăn chặn Python 2 từ đang cài đặt như một phụ thuộc cái gì trong tương lai với apt-mark hold:

sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib 

[Tháng sáu năm 2016] Đề nghị đặt cho thông tin về việc chuyển đổi được chính thức Ubuntu Python trang.


Từ những Ubuntu wiki:

Cho cả hai cài Debian, chúng tôi có đang diễn ra dự án mục tiêu để làm cho Python 3 mặc trong phiên bản Python trong việc phân phối.

Điều này không có nghĩa là:

  • /usr/bin/python sẽ chỉ đến Python 3. Không, điều này không xảy ra (trừ khi PEP 394 những người ủng hộ nếu không, đó là nghi ngờ cho tương lai). /usr/bin/python/usr/bin/python2 sẽ chỉ đến Python và 2.7 /usr/bin/python3 sẽ điểm đến mới nhất hỗ trợ Python 3 phiên bản.

  • Python 2 sẽ được lấy ra từ khu lưu trữ. Không, điều này không xảy ra. Chúng tôi mong đợi Python 2.7 vẫn hỗ trợ và có sẵn trong windows cho một thời gian khá lâu, cho rằng PEP 373 những lời hứa lên thượng nguồn sửa chữa lỗi hỗ trợ bảo trì cho đến năm 2020.

Nó là không nên để thay đổi mang tính biểu tượng, link vì gói khác phụ thuộc, nhưng họ "có dự án mục tiêu để làm cho Python 3 mặc trong phiên bản Python trong việc phân phối".


Cho CLI sử dụng, thích @ Nhà Hàng Radeanu Tôi sẽ giới thiệu đưa một bí danh của người dùng ~/.bashrc, .bash_aliases thấy (các các tập tin khác nhau, bao gồm ~/.bash_profile được nạp ít nhất một lần, là chủ yếu là cho mục đích tổ chức, nhưng có thể thay đổi theo nền tảng). Python môi trường ảo cũng làm việc tốt.

Bí danh ví dụ:

alias python=python3

hay

alias python='/usr/bin/python3'

Kịch bản vẫn nên sử dụng một cái gì đó như thế #!/usr/bin/env python3 cho tương thích.

Bằng cách sử dụng env là tốt đẹp cho sử dụng hỗn hợp với môi trường ảo.

Chú ý (nhờ @wjandrea): bí danh là một phần của bash chạy, chứ không phải người dùng môi trường. Vì vậy, họ không được công việc (#!). Nếu bạn thích các bí danh python=python3, sau đó vài program.py mà không có một công việc có thể được thực hiện bằng cách bí danh phiên dịch như thế này python program.py. Răng cưa cũng có thể có ích cho các hệ thống với nhiều bản của python3 như 3. 4 và là 3,6 với nhau.

Cập nhật: Đây là một cách sai lầm, tôi đã học được từ Python2 và Python3 không thay đổi được.

Bạn có thể thử dòng lệnh công cụ update-alternatives.

$ sudo update-alternatives --config python

Nếu bạn có lỗi và sẽ không thay thế cho python và lần, sau đó lập một sự thay thế cho mình với lệnh sau:

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

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

Dung và phần còn lại của dữ phân phối cho rằng vấn đề, vẫn còn phụ thuộc nhiều vào Python 2.7 cho một số ứng dụng và lệnh. Nếu bạn thay đổi định tham khảo của "python" để Python 3.x, sau đó một số Python chức năng sẽ bắt đầu ném khẳng định lỗi.

Ví dụ, trên ổ, 'pip' cho người ta sẽ không còn chạy đúng, trừ khi bạn trực tiếp sửa các tập tin và thay đổi các công việc để tham khảo '#!/usr/là:/m python2.7'. Trên RHEL (Mũ Đỏ Enterprise Linux) hương vị như Mũ Đỏ, Fedora và hàng trăm, các 'Yum' lệnh cũng là phụ thuộc vào Python 2.7.

Quan điểm của tôi, đây là bạn sẽ gây ra một số lượng đáng kể của mã để bắt đầu ném khẳng định lỗi, chỉ để bạn có thể loại 'python' trong các thiết bị đầu cuối để tham khảo Python 3.x.

Anh đang tốt hơn với việc sử dụng các 'python3' lệnh trong các thiết bị đầu cuối và những công việc '#!/usr/là:/m python3' in your Python 3.x các tập tin.

Làm

cd ~gedit .bash_aliases

sau đó, hoặc là viết

alias python=python3

hay

alias python='/usr/bin/python3'

Tiết kiệm những tập tin, đóng các thiết bị đầu cuối và mở nó một lần nữa.
Link

Tôi thấy nó rất hữu ích để chỉ cần loại bỏ /usr/là:/python và /usr/là:/pip. Này, lực lượng tất cả các chương trình để dựa trên "python2" và "python3" lệnh.

Mặc dù một số tùy chọn, và lỗi thời gói phụ thuộc vào #!/usr/bin/python để làm việc, tôi muốn gửi vá để những chương trình hơn tiếp tục làm cho kỳ lạ và đôi khi khó khăn để gỡ lỗi sai lầm.

cat > /usr/local/bin/py << 'EOF'#!/bin/dashpython3 "$@"EOF

(cung cấp cho bạn đã viết cho phép /usr//địa phương là:) tương tự như vậy

cat > /usr/local/bin/pyi << 'EOF'#!/bin/dashpython3 -i "$@"EOF

sau đó, bạn chỉ có loại siêu (và sử dụng điện trong #! dòng) cho lựa chọn của bạn python.

Chỉ là một cảnh báo: không cố gắng để thay đổi mục bin/python liên kết tượng trưng cho thời điểm để python3 thay vì 2.7. Nhiều chương trình có sẵn ở đây là một chủ đề trong yêu cầu /usr/là:/python để được tương thích với python 2.x.

Trên một lưu ý, bất cứ ai đến đây vì họ đang cố gắng để tìm hiểu về việc Python 3 của họ định, có thể thay vào đó tìm sử dụng trong nghiên cứu môi trường ảo (ví dụ như virtualenv) hoặc thùng (ví dụ như R hoặc Docker).

@wjandrea, có ngay cả trong một môi trường ảo python nên được giữ như có nghĩa là python2. Tôi có bình luận của tôi như là một cách để có một ứng dụng cụ thể Python phiên bản thay vì cố gắng để làm việc trên hệ thống của mãng xà.

Ah, bây giờ tôi có những gì bạn có nghĩa là với nâng cấp… Thực sự đây là một chủ đề phát triển đang làm việc trên đó: Python/3 - Ubuntu Wiki “Đó là một hành mục tiêu cho trình 14.04 để chỉ có Python 3 trên màn hình ảnh đĩa CD.”

Trong tài liệu tham khảo để soulsource của cảnh báo ở đầu thấy PEP 394 đó standardises ước đặt tên cho cùng tồn tại Python thực thi và trên đó Python lập trình viên và gói bảo trì làm (và nên) dựa.

ngôi khuynh cài đặt python-là-python3 (cho trình 20.04+)

@soulsource, vâng, tôi nhận thức được điều đó. đó là lý do tại sao tôi hỏi là có một “nâng cấp” lựa chọn sẵn hay không.

Tôi nghĩ các câu trả lời của nhà hàng Rădeanu là đã khá gần với tối ưu giải pháp. Nó chỉ áp dụng đối với một người sử dụng, và chỉ có hiệu lực trong trực tiếp chạy python gõ python lệnh, không ảnh hưởng đến chương trình với một #!/usr/là:/python công việc.

@soulsource đó là những gì tôi đang tìm kiếm! :slight_smile: cảm ơn!

Kevin, tôi chỉ cố gắng sử dụng một virtualenv, nhưng ngay khi tôi mở Gedit từ các thiết bị đầu cuối, tôi có một loạt các nguyên nhân lỗi của nó bổ sung có vẻ cần Python 2. Vấn đề tương tự có thể xảy ra cho bất kỳ khác, phần mềm mà dựa trên lệnh python là Python 2.