Làm cách nào để cài đặt python 2 và 3?

Ghi chú. Bản phát hành sửa lỗi mới hơn, 2. 7. 4, hiện có sẵn. Việc sử dụng nó được khuyến nghị hơn các phiên bản trước của 2. 7

Trăn 2. 7. 3 được phát hành vào ngày 9 tháng 4 năm 2012. 2. 7. 3 bao gồm các bản sửa lỗi cho một số sự cố bảo mật được báo cáo trong 2. 7. 2. vấn đề 13703 (oCERT-2011-003, từ chối dịch vụ xung đột hàm băm), vấn đề 14234 (CVE-2012-0876, xung đột bảng băm DoS sử dụng CPU trong thư viện người nước ngoài), vấn đề 14001 (CVE-2012-0845, từ chối dịch vụ SimpleXMLRPCServer

Trăn 2. 7 series được lên kế hoạch là phiên bản chính cuối cùng trong 2. dòng x trước 2. x chuyển sang giai đoạn bảo trì kéo dài. 2. 7 chứa nhiều tính năng được phát hành lần đầu trong Python 3. 1. Những cải tiến trong phiên bản này bao gồm

  • Một loại từ điển được sắp xếp
  • Các tính năng mới nhất bao gồm bỏ qua bài kiểm tra, phương pháp xác nhận mới và khám phá bài kiểm tra
  • Một mô-đun io nhanh hơn nhiều
  • Tự động đánh số các trường trong str. phương thức định dạng()
  • Cải tiến repr nổi được nhập từ 3. x
  • Hỗ trợ gạch cho Tkinter
  • Một backport của đối tượng memoryview từ 3. x
  • Đặt chữ
  • Tập hợp và hiểu từ điển
  • lượt xem từ điển
  • Cú pháp mới cho các câu lệnh lồng nhau
  • Mô-đun sysconfig

Xem các tài nguyên này để biết thêm thông tin

  • Có gì mới trong 2. 7?
  • Nhật ký thay đổi cho bản phát hành này
  • Tài liệu trực tuyến
  • Báo lỗi tại http. // lỗi. con trăn. tổ chức
  • Giúp tài trợ cho Python và cộng đồng của nó

Tải xuống

Đây là một bản phát hành sản xuất. Vui lòng báo cáo bất kỳ lỗi nào bạn gặp phải

Chúng tôi hiện hỗ trợ các định dạng này để tải xuống

  • Bóng tar nguồn được nén (2. 7. 3) (sig)
  • tarball nguồn được nén (2. 7. 3) (sig)
  • Bóng tar nguồn XZ (2. 7. 3) (sig)
  • Bộ cài Windows x86 MSI (2. 7. 3) (sig)
  • Cơ sở dữ liệu chương trình Windows x86 MSI (2. 7. 3) (sig)
  • Bộ cài Windows X86-64 MSI (2. 7. 3) (sig)
  • Cơ sở dữ liệu chương trình Windows X86-64 (2. 7. 3) (sig)
  • Tệp trợ giúp Windows (sig)
  • Bộ cài đặt Mac OS X 64-bit/32-bit x86-64/i386 (2. 7. 3) cho Mac OS X 10. 6 và 10. 7 (sig). [Bạn có thể cần cài đặt Tcl/Tk cập nhật để chạy IDLE hoặc sử dụng Tkinter, xem lưu ý 2 để biết hướng dẫn. ]
  • Trình cài đặt Mac OS X 32-bit i386/PPC (2. 7. 3) cho Mac OS X 10. 3 đến 10. 6 (sig)

Các tarball nguồn được ký bằng khóa của Benjamin Peterson (dấu vân tay. 12EF 3DC3 8047 DA38 2D18 A5B9 99CD EA9D A413 5B38). Trình cài đặt Windows được ký bởi khóa công khai của Martin von Löwis, khóa này có id khóa là 7D9DC8D2. Trình cài đặt Mac đã được ký bằng khóa của Ned Deily, có id khóa là 6F5E1540. Các khóa công khai được đặt trên

2to3 là ​​một chương trình Python đọc Python 2. x và áp dụng một loạt trình sửa lỗi để biến nó thành Python 3 hợp lệ. mã x. Thư viện tiêu chuẩn chứa một bộ sửa lỗi phong phú sẽ xử lý hầu hết tất cả mã. Tuy nhiên, thư viện hỗ trợ 2to3 là ​​một thư viện linh hoạt và chung chung, vì vậy bạn có thể viết các trình sửa lỗi của riêng mình cho 2to3

Không dùng nữa kể từ phiên bản 3. 11, sẽ bị xóa trong phiên bản 3. 13. Mô-đun

$ 2to3 example.py
1 được đánh dấu là đang chờ ngừng sử dụng trong Python 3. 9 (tăng khi nhập) và hoàn toàn không dùng nữa trong Python 3. 11 (tăng ). Công cụ
$ 2to3 example.py
5 là một phần của điều đó. Nó sẽ bị xóa trong Python 3. 13.

Sử dụng 2to3

2to3 thường sẽ được cài đặt với trình thông dịch Python dưới dạng tập lệnh. Nó cũng nằm trong thư mục

$ 2to3 example.py
6 của thư mục gốc Python

Các đối số cơ bản của 2to3 là ​​danh sách các tệp hoặc thư mục cần chuyển đổi. Các thư mục được duyệt qua đệ quy cho các nguồn Python

Đây là một mẫu Python 2. tệp nguồn x,

$ 2to3 example.py
7

def greet(name):
    print "Hello, {0}!".format(name)
print "What's your name?"
name = raw_input()
greet(name)

Nó có thể được chuyển đổi thành Python 3. xcode qua 2 đến 3 trên dòng lệnh

$ 2to3 example.py

Một sự khác biệt so với tệp nguồn ban đầu được in. 2to3 cũng có thể ghi ngay các sửa đổi cần thiết vào tệp nguồn. (Bản sao lưu của tệp gốc được thực hiện trừ khi

$ 2to3 example.py
8 cũng được cung cấp. ) Ghi lại các thay đổi được kích hoạt với cờ
$ 2to3 example.py
9

________số 8_______

Sau khi chuyển đổi,

$ 2to3 example.py
7 trông như thế này

def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)

Nhận xét và thụt đầu dòng chính xác được giữ nguyên trong suốt quá trình dịch thuật

Theo mặc định, 2to3 chạy một bộ. Cờ

$ 2to3 -w example.py
1 liệt kê tất cả các trình sửa lỗi có sẵn. Có thể cung cấp một bộ sửa lỗi rõ ràng để chạy với
$ 2to3 -w example.py
2. Tương tự như vậy,
$ 2to3 -w example.py
3 vô hiệu hóa một cách rõ ràng trình sửa lỗi. Ví dụ sau chỉ chạy bộ sửa lỗi
$ 2to3 -w example.py
4 và
$ 2to3 -w example.py
5

$ 2to3 -f imports -f has_key example.py

Lệnh này chạy mọi trình sửa lỗi ngoại trừ trình sửa lỗi

$ 2to3 -w example.py
6

$ 2to3 -x apply example.py

Một số trình sửa lỗi rõ ràng, nghĩa là chúng không được chạy theo mặc định và phải được liệt kê trên dòng lệnh để được chạy. Tại đây, ngoài các trình sửa lỗi mặc định, trình sửa lỗi

$ 2to3 -w example.py
7 được chạy

$ 2to3 -f all -f idioms example.py

Lưu ý cách chuyển

$ 2to3 -w example.py
8 cho phép tất cả các trình sửa lỗi mặc định

Đôi khi 2to3 sẽ tìm thấy một chỗ trong mã nguồn của bạn cần thay đổi, nhưng 2to3 không thể tự động sửa. Trong trường hợp này, 2to3 sẽ in cảnh báo bên dưới diff cho một tệp. Bạn nên giải quyết cảnh báo để tuân thủ 3. mã x

2to3 cũng có thể cấu trúc lại doctests. Để bật chế độ này, hãy sử dụng cờ

$ 2to3 -w example.py
9. Lưu ý rằng chỉ doctests sẽ được cấu trúc lại. Điều này cũng không yêu cầu mô-đun phải là Python hợp lệ. Ví dụ: các ví dụ giống như doctest trong tài liệu reST cũng có thể được cấu trúc lại với tùy chọn này

Tùy chọn

def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
0 cho phép xuất thêm thông tin về quy trình dịch thuật

Vì một số câu lệnh in có thể được phân tích thành lời gọi hàm hoặc câu lệnh, 2to3 không phải lúc nào cũng có thể đọc các tệp chứa hàm in. Khi 2to3 phát hiện sự hiện diện của chỉ thị trình biên dịch

def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
1, nó sẽ sửa đổi ngữ pháp bên trong của nó để diễn giải thành một hàm. Thay đổi này cũng có thể được kích hoạt thủ công với cờ
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
3. Sử dụng
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
3 để chạy các trình sửa mã trên mã đã được chuyển đổi câu lệnh in của nó. Cũng có thể sử dụng
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
5 để tạo một hàm

Tùy chọn

def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
7 hoặc
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
8 cho phép đặc tả một thư mục thay thế cho các tệp đầu ra đã xử lý được ghi vào. Cờ
$ 2to3 example.py
8 là bắt buộc khi sử dụng cờ này vì các tệp sao lưu không có ý nghĩa khi không ghi đè lên các tệp đầu vào

Mới trong phiên bản 3. 2. 3. Tùy chọn

def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
7 đã được thêm vào.

Cờ

$ 2to3 -f imports -f has_key example.py
1 hoặc
$ 2to3 -f imports -f has_key example.py
2 yêu cầu 2to3 luôn ghi tệp đầu ra ngay cả khi không cần thay đổi tệp. Điều này hữu ích nhất với
def greet(name):
    print("Hello, {0}!".format(name))
print("What's your name?")
name = input()
greet(name)
7 để toàn bộ cây nguồn Python được sao chép với bản dịch từ thư mục này sang thư mục khác. Tùy chọn này ngụ ý cờ
$ 2to3 example.py
9 vì nó sẽ không có ý nghĩa nếu không

Mới trong phiên bản 3. 2. 3. Cờ

$ 2to3 -f imports -f has_key example.py
1 đã được thêm vào.

Tùy chọn

$ 2to3 -f imports -f has_key example.py
6 chỉ định một chuỗi để nối vào tất cả các tên tệp đầu ra. Cần có cờ
$ 2to3 example.py
8 khi chỉ định điều này vì không cần sao lưu khi ghi vào các tên tệp khác nhau. Thí dụ

$ 2to3 -n -W --add-suffix=3 example.py

Sẽ khiến một tệp đã chuyển đổi có tên

$ 2to3 -f imports -f has_key example.py
8 được ghi

Mới trong phiên bản 3. 2. 3. Tùy chọn

$ 2to3 -f imports -f has_key example.py
6 đã được thêm vào.

Để dịch toàn bộ dự án từ cây thư mục này sang cây thư mục khác, hãy sử dụng

$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode

người sửa lỗi

Mỗi bước chuyển đổi mã được gói gọn trong một trình sửa lỗi. Lệnh

$ 2to3 -x apply example.py
0 liệt kê chúng. Vì, mỗi cái có thể được bật và tắt riêng lẻ. Chúng được mô tả ở đây chi tiết hơn

ứng dụng

Loại bỏ việc sử dụng

$ 2to3 -x apply example.py
1. Ví dụ:
$ 2to3 -x apply example.py
2 được chuyển đổi thành
$ 2to3 -x apply example.py
3

khẳng định

Thay thế tên phương thức không dùng nữa bằng tên chính xác

Từ

Đến

$ 2to3 -x apply example.py
5

$ 2to3 -x apply example.py
7

$ 2to3 -x apply example.py
9

$ 2to3 -f all -f idioms example.py
1

$ 2to3 -f all -f idioms example.py
3

$ 2to3 -f all -f idioms example.py
5

$ 2to3 -f all -f idioms example.py
7

$ 2to3 -f all -f idioms example.py
9

$ 2to3 -n -W --add-suffix=3 example.py
1

$ 2to3 -n -W --add-suffix=3 example.py
3

$ 2to3 -n -W --add-suffix=3 example.py
5

$ 2to3 -n -W --add-suffix=3 example.py
7

dây cơ sở

Chuyển đổi

$ 2to3 -n -W --add-suffix=3 example.py
9 thành

đệm

Chuyển đổi

$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
1 thành. Trình sửa lỗi này là tùy chọn vì API tương tự nhưng không hoàn toàn giống với API của
$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
1

mệnh lệnh

Sửa các phương pháp lặp lại từ điển.

$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
5 được chuyển đổi thành ,
$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
7 thành và
$ 2to3 --output-dir=python3-version/mycode -W -n python2-version/mycode
9 thành. Tương tự,
L = list(some_iterable)
L.sort()
1,
L = list(some_iterable)
L.sort()
2 và
L = list(some_iterable)
L.sort()
3 được chuyển đổi tương ứng thành , và. Nó cũng kết thúc các cách sử dụng hiện có của , và trong một cuộc gọi đến

ngoại trừ

Chuyển đổi

$ 2to3 example.py
01 thành
$ 2to3 example.py
02

giám đốc điều hành

Chuyển đổi câu lệnh

$ 2to3 example.py
03 thành hàm

tập tin thực thi

Loại bỏ việc sử dụng

$ 2to3 example.py
05. Đối số của
$ 2to3 example.py
05 được gói gọn trong các lời gọi đến , , và

lối ra

Thay đổi nhiệm vụ của

$ 2to3 example.py
10 để sử dụng mô-đun

lọc

Kết thúc việc sử dụng trong một cuộc gọi

vui vẻ

Sửa các thuộc tính chức năng đã được đổi tên. Ví dụ,

$ 2to3 example.py
14 được chuyển đổi thành
$ 2to3 example.py
15

Tương lai

Loại bỏ các câu lệnh

$ 2to3 example.py
16

getcwdu

Đổi tên

$ 2to3 example.py
17 thành

has_key

Thay đổi

$ 2to3 example.py
19 thành
$ 2to3 example.py
20

thành ngữ

Trình sửa lỗi tùy chọn này thực hiện một số phép biến đổi làm cho mã Python trở nên đặc ngữ hơn. Các kiểu so sánh như

$ 2to3 example.py
21 và
$ 2to3 example.py
22 được chuyển đổi thành
$ 2to3 example.py
23.
$ 2to3 example.py
24 trở thành
$ 2to3 example.py
25. Trình sửa lỗi này cũng cố gắng sử dụng ở những nơi thích hợp. Ví dụ, khối này

L = list(some_iterable)
L.sort()

được đổi thành

$ 2to3 example.py
0

nhập khẩu

Phát hiện nhập khẩu anh chị em và chuyển đổi chúng thành nhập khẩu tương đối

nhập khẩu

Xử lý đổi tên mô-đun trong thư viện chuẩn

nhập khẩu2

Xử lý đổi tên các mô-đun khác trong thư viện chuẩn. Nó tách biệt với trình sửa lỗi chỉ vì những hạn chế kỹ thuật

đầu vào

Chuyển đổi

$ 2to3 example.py
28 thành
$ 2to3 example.py
29

thực tập sinh

Chuyển đổi

$ 2to3 example.py
30 thành

chẳng hạn

Sửa các loại trùng lặp trong đối số thứ hai của. Ví dụ:

$ 2to3 example.py
33 được chuyển đổi thành
$ 2to3 example.py
34 và
$ 2to3 example.py
35 được chuyển đổi thành
$ 2to3 example.py
36

itertools_imports

Xóa nhập khẩu của

$ 2to3 example.py
37,
$ 2to3 example.py
38 và
$ 2to3 example.py
39. Nhập khẩu của
$ 2to3 example.py
40 cũng được đổi thành

itertools

Thay đổi cách sử dụng của

$ 2to3 example.py
37,
$ 2to3 example.py
38 và
$ 2to3 example.py
39 thành tương đương được tích hợp sẵn của chúng.
$ 2to3 example.py
40 được đổi thành

Dài

Đổi tên

$ 2to3 example.py
47 thành

bản đồ

Kết thúc cuộc gọi. Nó cũng thay đổi

$ 2to3 example.py
51 thành
$ 2to3 example.py
52. Sử dụng
$ 2to3 example.py
53 sẽ vô hiệu hóa trình sửa lỗi này

siêu lớp

Chuyển đổi cú pháp siêu dữ liệu cũ (

$ 2to3 example.py
54 trong nội dung lớp) thành mới (
$ 2to3 example.py
55)

phương phápattrs

Sửa tên thuộc tính phương pháp cũ. Ví dụ,

$ 2to3 example.py
56 được chuyển đổi thành
$ 2to3 example.py
57

ne

Chuyển đổi cú pháp không bằng cũ,

$ 2to3 example.py
58, thành
$ 2to3 example.py
59

tiếp theo

Chuyển đổi việc sử dụng các phương thức

$ 2to3 example.py
60 của iterator thành hàm. Nó cũng đổi tên các phương thức thành

khác không

Đổi tên các định nghĩa của các phương thức được gọi là

$ 2to3 example.py
64 thành

chữ số

Chuyển đổi các ký tự bát phân thành cú pháp mới

nhà điều hành

Chuyển đổi các cuộc gọi đến các chức năng khác nhau trong mô-đun thành các cuộc gọi chức năng khác nhưng tương đương. Khi cần thiết, các câu lệnh

$ 2to3 example.py
67 thích hợp được thêm vào, e. g.
$ 2to3 example.py
68. Các ánh xạ sau đây được thực hiện

Từ

Đến

$ 2to3 example.py
69

$ 2to3 example.py
70

$ 2to3 example.py
71

$ 2to3 example.py
72

$ 2to3 example.py
73

$ 2to3 example.py
74

$ 2to3 example.py
75

$ 2to3 example.py
76

$ 2to3 example.py
77

$ 2to3 example.py
78

$ 2to3 example.py
79

$ 2to3 example.py
80

$ 2to3 example.py
81

$ 2to3 example.py
82

paren

Thêm dấu ngoặc đơn bổ sung khi chúng được yêu cầu trong phần hiểu danh sách. Ví dụ,

$ 2to3 example.py
83 trở thành
$ 2to3 example.py
84

in

Chuyển đổi câu lệnh

$ 2to3 example.py
85 thành hàm

nâng lên

Chuyển đổi

$ 2to3 example.py
87 thành
$ 2to3 example.py
88 và
$ 2to3 example.py
89 thành
$ 2to3 example.py
90. Nếu
$ 2to3 example.py
91 là một bộ, bản dịch sẽ không chính xác vì việc thay thế các bộ cho các ngoại lệ đã bị loại bỏ trong 3. 0

Làm cách nào để cài đặt Python 2?

Cài đặt Python 2 trên Ubuntu 20. 04 hướng dẫn từng bước .
Để cài đặt phiên bản Python 2 trên Ubuntu 20. 04 mở một thiết bị đầu cuối và nhập các lệnh sau. $ sudo apt cập nhật $ sudo apt cài đặt python2
Kiểm tra phiên bản Python hiện tại của bạn. $ python2 -V Trăn 2. 7. 17

Pip có cài đặt cho python2 hoặc python3 không?

Pip là một công cụ để cài đặt các gói Python. Với pip, bạn có thể tìm kiếm, tải xuống và cài đặt các gói từ Chỉ mục gói Python (PyPI) và các chỉ mục gói khác. Hướng dẫn này giải thích cách cài đặt pip cho Python 3 và Python 2 trên Ubuntu 20. 04.

Bạn có thể trộn Python 2 và 3 không?

Không "trộn lẫn" . Khi các gói và mô-đun khác nhau có sẵn trong Python 3, hãy sử dụng chuyển đổi 2to3 để tạo Python 3. Bạn sẽ tìm thấy một số vấn đề nhỏ. Sửa Python 2 của bạn để gói của bạn hoạt động trong Python 2 và cũng hoạt động sau khi chuyển đổi.