Chờ cho đến khi cài đặt hoàn tất. Show
Nhấp vào Kết thúc 3. Tải xuống Python3 Download python3 Theo cách tương tự như được mô tả trong Bước 1, tải xuống Python3.step 1, download python3. Nhấp vào thực thi để cài đặt và chọn Tùy chỉnh cài đặt. Chọn các giá trị mặc định và tùy chỉnh vị trí cài đặt vào C: \ Python3C:\Python3 4.Add Python27 và Python3 Path Add python27 and python3 PATH Tìm kiếm ‘Panel de Control, và mở nó. Trong thanh tìm kiếm, tìm kiếm ‘biến de Enterorno. Nhấp vào ‘Biến de Enterorno Chọn đường dẫn và nhấp vào ‘Nueva, Thêm các tuyến sau để sử dụng Python và PIP.
Lưu ý: Nếu bạn đã cài đặt Python ở một vị trí khác, bạn cần tìm thấy vị trí của mình và đặt vị trí đó. If you have installed python on a different location you need to find your where python is and set that location. 5. Tên thực thi tên Change executables names Để thực hiện cả phiên bản Python, thay đổi python.exe thành python2.exe nơi python2 được đặt và python.exe đến python3.exe nơi python3. Nguồn: https://stackoverflow.com/questions/3809314/how-to-install-both-python-2-x-and-n--python-3-x-in-windows-7 https://stackoverflow.com/questions/3809314/how-to-install-both-python-2-x-and-python-3-x-in-windows-7 6.Test cả hai phiên bản Python TEST Both Python versions A.Check Phiên bản Python Check python versions Chạy Python2THERV và Python3THERV để có được các phiên bản Python tương ứng. b. Cài đặt gói bằng Python2 và Python3 Nếu các lệnh trên chạy mà không gặp vấn đề gì, Python2 và Python3 đã được cài đặt thành công trên môi trường Windows 10. Jose Miguel Arrieta Tháng 1 năm 2018 Pháo brett trừu tượng Với Python 3 là tương lai của Python trong khi Python 2 vẫn đang được sử dụng tích cực, thật tốt khi có sẵn dự án của bạn cho cả hai bản phát hành chính của Python. Hướng dẫn này có nghĩa là để giúp bạn tìm ra cách tốt nhất để hỗ trợ cả Python 2 & 3 đồng thời. Nếu bạn đang tìm cách chuyển một mô -đun mở rộng thay vì mã Python thuần túy, vui lòng xem các mô -đun mở rộng chuyển sang Python 3.Porting Extension Modules to Python 3. Nếu bạn muốn đọc một nhà phát triển Python cốt lõi, nhận lý do tại sao Python 3 ra đời, bạn có thể đọc Nick Coghlan, Python 3 Hỏi & Đáp hoặc Brett Cannon, tại sao Python 3 tồn tại. Để được trợ giúp về việc chuyển giao, bạn có thể xem danh sách gửi thư Python được lưu trữ. Giải thích ngắnĐể làm cho dự án của bạn trở nên tương thích với Python 2/3, các bước cơ bản là:
Ghi chú Lưu ý: Sử dụng import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc0 đảm bảo rằng import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc1 bạn gọi là một cái được cài đặt cho Python hiện đang được sử dụng, cho dù đó là một hệ thống trên toàn hệ thống hoặc một được cài đặt trong môi trường ảo.virtual environment. Thông tin chi tiết¶Một điểm quan trọng về việc hỗ trợ Python 2 & 3 đồng thời là bạn có thể bắt đầu ngay hôm nay! Ngay cả khi các phụ thuộc của bạn không hỗ trợ Python 3 nhưng điều đó không có nghĩa là bạn có thể hiện đại hóa mã của mình ngay bây giờ để hỗ trợ Python 3. Hầu hết các thay đổi cần thiết để hỗ trợ Python 3 dẫn đến mã sạch hơn bằng cách sử dụng các thông lệ mới hơn ngay cả trong mã Python 2.today! Even if your dependencies are not supporting Python 3 yet that does not mean you can’t modernize your code now to support Python 3. Most changes required to support Python 3 lead to cleaner code using newer practices even in Python 2 code. Một điểm quan trọng khác là hiện đại hóa mã Python 2 của bạn để hỗ trợ Python 3 phần lớn là tự động cho bạn. Mặc dù bạn có thể phải đưa ra một số quyết định API nhờ Python 3 làm rõ dữ liệu văn bản so với dữ liệu nhị phân, công việc cấp thấp hơn hiện được thực hiện chủ yếu cho bạn và do đó ít nhất có thể được hưởng lợi từ các thay đổi tự động ngay lập tức. Hãy ghi nhớ những điểm chính trong khi bạn đọc về các chi tiết chuyển mã của bạn để hỗ trợ Python 2 & 3 đồng thời. Bỏ hỗ trợ cho Python 2.6 trở lênMặc dù bạn có thể làm cho Python 2.5 hoạt động với Python 3, nhưng sẽ dễ dàng hơn nhiều nếu bạn chỉ phải làm việc với Python 2.7. Nếu thả Python 2.5 không phải là một tùy chọn thì sáu dự án có thể giúp bạn hỗ trợ đồng thời Python 2.5 & 3 ( import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc3). Tuy nhiên, hãy nhận ra rằng gần như tất cả các dự án được liệt kê trong howto sẽ không có sẵn cho bạn.much easier if you only have to work with Python 2.7. If dropping Python 2.5 is not an option then the six project can help you support Python 2.5 & 3 simultaneously ( import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc3). Do realize, though, that nearly all the projects listed in this HOWTO will not be available to you. Nếu bạn có thể bỏ qua Python 2.5 trở lên, thì các thay đổi cần thiết đối với mã của bạn sẽ tiếp tục trông và cảm thấy như mã Python thành ngữ. Tệ nhất là bạn sẽ phải sử dụng một chức năng thay vì phương thức trong một số trường hợp hoặc phải nhập chức năng thay vì sử dụng một chức năng tích hợp, nhưng nếu không thì chuyển đổi tổng thể sẽ không cảm thấy xa lạ với bạn. Nhưng bạn nên nhắm đến việc chỉ hỗ trợ Python 2.7. Python 2.6 không còn được hỗ trợ tự do và do đó không nhận được lỗi. Điều này có nghĩa là bạn sẽ phải giải quyết bất kỳ vấn đề nào bạn gặp phải với Python 2.6. Ngoài ra còn có một số công cụ được đề cập trong howto này không hỗ trợ Python 2.6 (ví dụ: pylint) và điều này sẽ trở nên phổ biến hơn khi thời gian trôi qua. Nó sẽ đơn giản là dễ dàng hơn cho bạn nếu bạn chỉ hỗ trợ các phiên bản của Python mà bạn phải hỗ trợ.you will have to work around any issues you come across with Python 2.6. There are also some tools mentioned in this HOWTO which do not support Python 2.6 (e.g., Pylint), and this will become more commonplace as time goes on. It will simply be easier for you if you only support the versions of Python that you have to support. Đảm bảo bạn chỉ định hỗ trợ phiên bản thích hợp trong tệp import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc 4 của bạnTrong tệp import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc4 của bạn, bạn nên có trình phân loại trove thích hợp chỉ định phiên bản nào của Python bạn hỗ trợ. Vì dự án của bạn không hỗ trợ Python 3 nhưng ít nhất bạn nên chỉ định import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc6. Lý tưởng nhất là bạn cũng nên chỉ định từng phiên bản chính/nhỏ của Python mà bạn hỗ trợ, ví dụ: import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc7. Có phạm vi bảo hiểm kiểm tra tốtKhi bạn có mã của mình hỗ trợ phiên bản Python 2 lâu đời nhất mà bạn muốn, bạn sẽ muốn đảm bảo bộ thử nghiệm của bạn có phạm vi bảo hiểm tốt. Một quy tắc tốt là nếu bạn muốn đủ tự tin trong bộ thử nghiệm của mình rằng bất kỳ lỗi nào xuất hiện sau khi có công cụ viết lại mã của bạn là các lỗi thực tế trong các công cụ chứ không phải trong mã của bạn. Nếu bạn muốn có một số nhắm mục tiêu, hãy cố gắng nhận được hơn 80% phạm vi bảo hiểm (và don cảm thấy tồi tệ nếu bạn thấy khó có được mức bảo hiểm tốt hơn 90%). Nếu bạn không có một công cụ để đo lường phạm vi bảo hiểm kiểm tra thì nên bảo hiểm.py được khuyến nghị. Tìm hiểu sự khác biệt giữa Python 2 & 3¶Khi bạn có mã được thử nghiệm tốt, bạn đã sẵn sàng để bắt đầu chuyển mã của mình sang Python 3! Nhưng để hiểu đầy đủ cách mã của bạn sẽ thay đổi và những gì bạn muốn tìm kiếm trong khi mã Doc What's New New Doc cho mỗi lần phát hành Python 3 và cuốn sách chuyển sang Python 3 (trực tuyến miễn phí). Ngoài ra còn có một tờ cheat tiện dụng từ dự án tương lai Python.“What’s New” doc for each release of Python 3 and the Porting to Python 3 book (which is free online). There is also a handy cheat sheet from the Python-Future project. Cập nhật mã của bạnKhi bạn cảm thấy như bạn biết những gì khác biệt trong Python 3 so với Python 2, đó là thời gian để cập nhật mã của bạn! Bạn có một sự lựa chọn giữa hai công cụ trong việc chuyển mã của bạn tự động: tương lai và hiện đại hóa. Bạn chọn công cụ nào sẽ phụ thuộc vào mức độ giống như Python 3 mà bạn muốn mã của mình. Tương lai làm hết sức mình để làm cho Python 3 thành ngữ và thực hành tồn tại trong Python 2, ví dụ: Backporting loại import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 từ Python 3 để bạn có sự tương đương về ngữ nghĩa giữa các phiên bản chính của Python. Mặt khác, hiện đại hóa là bảo thủ hơn và nhắm mục tiêu một tập hợp Python 2/3 của Python, trực tiếp dựa vào sáu để giúp cung cấp khả năng tương thích. Vì Python 3 là tương lai, tốt nhất là nên xem xét tương lai để bắt đầu điều chỉnh theo bất kỳ thực tiễn mới nào mà Python 3 giới thiệu mà bạn chưa quen với. Bất kể bạn chọn công cụ nào, họ sẽ cập nhật mã của bạn để chạy theo Python 3 trong khi vẫn tương thích với phiên bản Python 2 mà bạn đã bắt đầu. Tùy thuộc vào mức độ bảo thủ mà bạn muốn trở thành, bạn có thể muốn chạy công cụ qua bộ thử nghiệm của mình trước và kiểm tra trực quan DIFT để đảm bảo chuyển đổi là chính xác. Sau khi bạn đã chuyển đổi bộ thử nghiệm của mình và xác minh rằng tất cả các bài kiểm tra vẫn vượt qua như mong đợi, thì bạn có thể chuyển đổi mã ứng dụng của mình khi biết rằng bất kỳ thử nghiệm nào thất bại là lỗi dịch. Thật không may, các công cụ có thể tự động hóa tất cả mọi thứ để làm cho mã của bạn hoạt động theo Python 3 và do đó, có một số thứ bạn sẽ cần cập nhật thủ công để nhận hỗ trợ Python 3 đầy đủ (các bước này cần thiết giữa các công cụ). Đọc tài liệu cho công cụ bạn chọn sử dụng để xem những gì nó sửa theo mặc định và những gì nó có thể làm tùy chọn để biết những gì sẽ (không) được sửa cho bạn và những gì bạn có thể phải tự sửa chữa (ví dụ: sử dụng import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc9 trong Hàm try: from importlib import abc except ImportError: from importlib2 import abc0 tích hợp được tắt theo mặc định trong hiện đại hóa). Mặc dù vậy, may mắn thay, chỉ có một vài điều cần chú ý có thể được coi là những vấn đề lớn có thể khó gỡ lỗi nếu không được theo dõi. Phân công¶Trong Python 3, try: from importlib import abc except ImportError: from importlib2 import abc1 chứ không phải try: from importlib import abc except ImportError: from importlib2 import abc2; Tất cả sự phân chia giữa các giá trị try: from importlib import abc except ImportError: from importlib2 import abc3 dẫn đến try: from importlib import abc except ImportError: from importlib2 import abc4. Thay đổi này thực sự đã được lên kế hoạch kể từ Python 2.2 được phát hành vào năm 2002. Kể từ đó, người dùng đã được khuyến khích thêm try: from importlib import abc except ImportError: from importlib2 import abc5 vào bất kỳ và tất cả các tệp sử dụng các toán tử try: from importlib import abc except ImportError: from importlib2 import abc6 và try: from importlib import abc except ImportError: from importlib2 import abc7 hoặc chạy trình thông dịch bằng cờ try: from importlib import abc except ImportError: from importlib2 import abc8. Nếu bạn chưa làm điều này thì bạn sẽ cần phải thông qua mã của mình và làm hai điều:
Lý do mà try: from importlib import abc except ImportError: from importlib2 import abc6 không được dịch đơn giản tự động thành try: from importlib import abc except ImportError: from importlib2 import abc7 là nếu một đối tượng xác định phương thức from __future__ import absolute_import from __future__ import division from __future__ import print_function4 nhưng không phải from __future__ import absolute_import from __future__ import division from __future__ import print_function5 thì mã của bạn sẽ bắt đầu thất bại (ví dụ: một lớp do người dùng xác định điều tương tự hoặc tất cả). Văn bản so với dữ liệu nhị phânTrong Python 2, bạn có thể sử dụng loại from __future__ import absolute_import from __future__ import division from __future__ import print_function8 cho cả dữ liệu văn bản và nhị phân. Thật không may, sự hợp lưu của hai khái niệm khác nhau có thể dẫn đến mã giòn mà đôi khi hoạt động cho một trong hai loại dữ liệu, đôi khi không. Nó cũng có thể dẫn đến API khó hiểu nếu mọi người không nói rõ rằng một cái gì đó đã chấp nhận from __future__ import absolute_import from __future__ import division from __future__ import print_function8 đã chấp nhận dữ liệu văn bản hoặc nhị phân thay vì một loại cụ thể. Điều này phức tạp về tình huống đặc biệt đối với bất kỳ ai hỗ trợ nhiều ngôn ngữ vì API sẽ không bận tâm hỗ trợ rõ ràng python -m pip install coverage 0 khi họ tuyên bố hỗ trợ dữ liệu văn bản.Để làm cho sự khác biệt giữa dữ liệu văn bản và dữ liệu nhị phân rõ ràng hơn và rõ rệt hơn, Python 3 đã làm những gì mà hầu hết các ngôn ngữ tạo ra trong thời đại của Internet đã thực hiện và tạo ra các loại dữ liệu nhị phân và nhị phân không thể được trộn lẫn với nhau (Python có quyền truy cập rộng rãi vào Internet). Đối với bất kỳ mã nào chỉ liên quan đến văn bản hoặc chỉ dữ liệu nhị phân, sự phân tách này không phải là vấn đề. Nhưng đối với mã phải đối phó với cả hai, điều đó có nghĩa là bây giờ bạn có thể phải quan tâm khi bạn đang sử dụng văn bản so với dữ liệu nhị phân, đó là lý do tại sao điều này không thể hoàn toàn tự động. Để bắt đầu, bạn sẽ cần phải quyết định API lấy văn bản và lấy nhị phân nào (rất khuyến khích bạn không thiết kế API có thể mất cả do khó khăn trong việc giữ mã hoạt động; như đã nêu trước đó rất khó để làm tốt ). Trong Python 2, điều này có nghĩa là đảm bảo các API lấy văn bản có thể hoạt động với from __future__ import absolute_import from __future__ import division from __future__ import print_function8 trong Python 3, đối với nhị phân mà ____ 38/________ 18 trong Python 2 và import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 ở Python 3). Bảng sau liệt kê các phương thức duy nhất của từng loại dữ liệu trên Python 2 & 3 (ví dụ: phương thức python -m pip install future 0 có thể sử dụng trên loại dữ liệu nhị phân tương đương trong Python 2 hoặc 3, nhưng nó không thể được sử dụng bởi loại dữ liệu văn bản một cách nhất quán giữa Python 2 và 3 vì from __future__ import absolute_import from __future__ import division from __future__ import print_function8 trong Python 3 không có phương pháp). Xin lưu ý rằng như của Python 3.5, phương pháp python -m pip install future 2 đã được thêm vào loại byte.highly recommended you don’t design APIs that can take both due to the difficulty of
keeping the code working; as stated earlier it is difficult to do well). In Python 2 this means making sure the APIs that take text can work with python -m pip install coverage 0 and those that work with binary data work with the import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 type from Python 3 (which is a subset of from __future__ import absolute_import from __future__ import division from __future__ import print_function8 in Python 2 and acts as an alias for import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 type in Python 2). Usually the biggest issue is realizing which methods exist on which types in Python 2 & 3 simultaneously (for text that’s python -m pip install coverage 0 in Python 2 and from __future__ import absolute_import from __future__ import division from __future__ import print_function8 in Python 3, for binary that’s from __future__ import absolute_import from __future__ import division from __future__ import print_function8/ import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 in Python 2 and import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 in Python 3). The following table lists the unique methods of each data type across Python 2 & 3 (e.g., the python -m pip install future 0 method is usable on the equivalent binary data type in either Python 2 or 3, but it can’t be used by the textual data type consistently between Python 2 and 3 because from __future__ import absolute_import from __future__ import division from __future__ import print_function8 in Python 3 doesn’t have the method). Do note that as of Python 3.5 the python -m pip install future 2 method was added to the bytes type.
Làm cho sự khác biệt dễ dàng hơn để xử lý có thể được thực hiện bằng cách mã hóa và giải mã giữa dữ liệu nhị phân và văn bản ở rìa mã của bạn. Điều này có nghĩa là khi bạn nhận được văn bản trong dữ liệu nhị phân, bạn nên giải mã nó ngay lập tức. Và nếu mã của bạn cần gửi văn bản dưới dạng dữ liệu nhị phân thì mã hóa nó càng muộn càng tốt. Điều này cho phép mã của bạn làm việc chỉ với văn bản nội bộ và do đó loại bỏ việc phải theo dõi loại dữ liệu bạn đang làm việc. Vấn đề tiếp theo là đảm bảo bạn biết liệu các chuỗi chữ trong mã của bạn đại diện cho văn bản hoặc dữ liệu nhị phân. Bạn nên thêm tiền tố Là một phần của sự phân đôi này, bạn cũng cần cẩn thận về việc mở các tập tin. Trừ khi bạn đã làm việc trên Windows, có khả năng bạn không luôn bận tâm thêm chế độ import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc9 để mở các tệp thay vì hàm try: from importlib import abc except ImportError: from importlib2 import abc0 tích hợp vì mô-đun python -m pip install pylint 0 phù hợp từ Python 2 đến 3 trong khi hàm try: from importlib import abc except ImportError: from importlib2 import abc0 tích hợp không (trong Python 3, nó thực sự là import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc9). Đừng bận tâm đến việc sử dụng python -m pip install pylint 6 lỗi thời vì điều đó chỉ cần thiết để giữ khả năng tương thích với Python 2.5.must make a decision of whether a file will be used for binary access (allowing binary data to be read and/or written) or textual access (allowing text data to be read and/or written). You should also use
import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc9 for opening files instead of the built-in try: from importlib import abc except ImportError: from importlib2 import abc0 function as the python -m pip install pylint 0 module is consistent from Python 2 to 3 while the built-in
try: from importlib import abc except ImportError: from importlib2 import abc0 function is not (in Python 3 it’s actually import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc9). Do not bother with the outdated practice of using python -m pip install pylint 6 as that’s only necessary for keeping compatibility with Python 2.5.Các hàm tạo của cả from __future__ import absolute_import from __future__ import division from __future__ import print_function8 và import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 có ngữ nghĩa khác nhau cho cùng một đối số giữa Python 2 & 3. Chuyển một số nguyên cho import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 trong Python 2 sẽ cung cấp cho bạn biểu diễn chuỗi của số nguyên: python -m pip install caniusepython3 0. Nhưng trong Python 3, một đối số số nguyên cho import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc8 sẽ cung cấp cho bạn một đối tượng byte miễn là số nguyên được chỉ định, chứa đầy các byte null: python -m pip install caniusepython3 2. Một lo lắng tương tự là cần thiết khi chuyển một đối tượng byte cho from __future__ import absolute_import from __future__ import division from __future__ import print_function8. Trong Python 2, bạn chỉ cần lấy lại đối tượng byte: python -m pip install caniusepython3 4. Nhưng trong Python 3, bạn nhận được biểu diễn chuỗi của đối tượng byte: python -m pip install caniusepython3 5.Cuối cùng, việc lập chỉ mục dữ liệu nhị phân đòi hỏi phải xử lý cẩn thận (cắt không yêu cầu xử lý đặc biệt). Trong Python 2, Để tóm tắt:
Sử dụng phát hiện tính năng thay vì phát hiện phiên bảnChắc chắn bạn sẽ có mã phải chọn những việc cần làm dựa trên phiên bản Python đang chạy. Cách tốt nhất để làm điều này là phát hiện tính năng về việc liệu phiên bản Python mà bạn đang chạy theo hỗ trợ những gì bạn cần. Nếu vì một lý do nào đó mà không hoạt động thì bạn nên thực hiện kiểm tra phiên bản chống lại Python 2 chứ không phải Python 3. Để giúp giải thích điều này, hãy để xem một ví dụ. Hãy cùng giả vờ rằng bạn cần truy cập vào một tính năng của import sys if sys.version_info[0] == 3: from importlib import abc else: from importlib2 import abc Vấn đề với mã này là những gì xảy ra khi Python 4 xuất hiện? Sẽ tốt hơn nếu coi Python 2 là trường hợp đặc biệt thay vì Python 3 và cho rằng các phiên bản Python trong tương lai sẽ tương thích với Python 3 hơn Python 2: import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc Tuy nhiên, giải pháp tốt nhất là không phát hiện phiên bản và thay vào đó dựa vào phát hiện tính năng. Điều đó tránh mọi vấn đề tiềm ẩn trong việc phát hiện phiên bản sai và giúp bạn tương thích trong tương lai: try: from importlib import abc except ImportError: from importlib2 import abc Ngăn chặn hồi quy khả năng tương thíchKhi bạn đã dịch hoàn toàn mã của mình để tương thích với Python 3, bạn sẽ muốn đảm bảo mã của bạn không hồi quy và ngừng hoạt động theo Python 3. Điều này đặc biệt đúng nếu bạn có sự phụ thuộc đang chặn bạn thực sự chạy theo Python 3 tại thời điểm này. Để giúp duy trì tương thích, bất kỳ mô -đun mới nào bạn tạo nên có ít nhất là khối mã sau ở đầu của nó: from __future__ import absolute_import from __future__ import division from __future__ import print_function Bạn cũng có thể chạy Python 2 bằng cờ Bạn cũng có thể sử dụng dự án pylint và cờ Kiểm tra sự phụ thuộc nào chặn quá trình chuyển đổi của bạnSau khi bạn đã làm cho mã của mình tương thích với Python 3, bạn nên bắt đầu quan tâm đến việc liệu các phụ thuộc của bạn cũng đã được chuyển. Dự án Caniusepython3 được tạo để giúp bạn xác định dự án nào-trực tiếp hoặc gián tiếp-đang ngăn bạn hỗ trợ Python 3. Có cả công cụ dòng lệnh cũng như giao diện web tại https://caniusepython3.com. you have made your code compatible with Python 3 you should begin to care about whether your dependencies have also been ported. The caniusepython3 project was created to help you determine which projects – directly or indirectly – are blocking you from supporting Python 3. There is both a command-line tool as well as a web interface at https://caniusepython3.com. Dự án cũng cung cấp mã mà bạn có thể tích hợp vào bộ thử nghiệm của mình để bạn sẽ có bài kiểm tra thất bại khi bạn không còn phụ thuộc chặn bạn sử dụng Python 3. Điều này cho phép bạn tránh phải kiểm tra thủ công các phụ thuộc của bạn và nhanh chóng được thông báo Khi bạn có thể bắt đầu chạy trên Python 3. Cập nhật tệp import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc 4 của bạn để biểu thị khả năng tương thích của Python 3Khi mã của bạn hoạt động theo Python 3, bạn nên cập nhật các trình phân loại trong import sys if sys.version_info[0] > 2: from importlib import abc else: from importlib2 import abc4 của mình để chứa python -m pip install mypy 4 và không chỉ định hỗ trợ Python 2 duy nhất. Điều này sẽ cho bất kỳ ai sử dụng mã của bạn rằng bạn hỗ trợ Python 2 và 3. Lý tưởng nhất là bạn cũng sẽ muốn thêm trình phân loại cho từng phiên bản chính/nhỏ của Python mà bạn hiện đang hỗ trợ.and 3. Ideally you will also want to add classifiers for each major/minor
version of Python you now support.Sử dụng tích hợp liên tục để duy trì tương thích JorKhi bạn có thể chạy hoàn toàn theo Python 3, bạn sẽ muốn đảm bảo mã của bạn luôn hoạt động theo cả Python 2 & 3. Có lẽ là công cụ tốt nhất để chạy thử nghiệm của bạn dưới nhiều phiên dịch viên Python là Tox. Sau đó, bạn có thể tích hợp TOX với hệ thống tích hợp liên tục của mình để bạn không bao giờ vô tình phá vỡ hỗ trợ Python 2 hoặc 3. Bạn cũng có thể muốn sử dụng cờ Và điều đó chủ yếu là nó! Tại thời điểm này, cơ sở mã của bạn tương thích với cả Python 2 và 3 đồng thời. Thử nghiệm của bạn cũng sẽ được thiết lập để bạn vô tình phá vỡ khả năng tương thích của Python 2 hoặc 3 bất kể bạn thường chạy thử nghiệm nào trong khi phát triển. Cân nhắc sử dụng kiểm tra loại tĩnh tùy chọnMột cách khác để giúp chuyển mã mã của bạn là sử dụng trình kiểm tra loại tĩnh như mypy hoặc pytype trên mã của bạn. Các công cụ này có thể được sử dụng để phân tích mã của bạn như thể nó đang được chạy theo Python 2, sau đó bạn có thể chạy công cụ lần thứ hai như thể mã của bạn đang chạy dưới Python 3. Bằng cách chạy trình kiểm tra loại tĩnh hai lần như thế này bạn có thể khám phá ra nếu Bạn ví dụ: Sử dụng sai loại dữ liệu nhị phân trong một phiên bản của Python so với một phiên bản khác. Nếu bạn thêm gợi ý loại tùy chọn vào mã của mình, bạn cũng có thể nêu rõ liệu API của bạn sử dụng dữ liệu văn bản hoặc nhị phân, giúp đảm bảo mọi thứ hoạt động như mong đợi trong cả hai phiên bản Python. Làm cách nào để thay thế Python 2 bằng Python 3?Cách thay thế Python 3 bằng Python 2 trong Linux.. 1.1 Cài đặt Python 2 với sudo .. 1.2 Thay đổi liên kết tượng trưng được tạo bởi Python 3 in / usr / bin / python thành một trong python 2 .. 1.3 Thay đổi liên kết tượng trưng được tạo bởi gói VirtualEnv trong / usr / bin / VirtualEnv .. Python3 có tương thích với Python 2 không?Python phiên bản 3 không tương thích ngược với Python 2. Nhiều nhà phát triển gần đây đang tạo các thư viện mà bạn chỉ có thể sử dụng với Python 3. Nhiều thư viện cũ được tạo cho Python 2 không tương thích về phía trước.. Many recent developers are creating libraries which you can only use with Python 3. Many older libraries created for Python 2 is not forward-compatible.
Tôi có thể cài đặt Python 2 và 3 cùng một lúc không?Bạn có thể cài đặt cả hai phiên bản cùng một lúc..
Pip có cài đặt cho cả Python 2 và 3 không?Lưu ý: Trên một số hệ thống mà cả Python 2 & Python 3 được cài đặt, PIP và PIP3 sẽ làm những việc khác nhau.PIP cài đặt phiên bản Python 2 của gói và PIP3 sẽ cài đặt phiên bản Python 3 của gói.Nó nên cài đặt tất cả các mô -đun được liệt kê trên tệp.Nếu bài viết này là hữu ích, hãy tweet nó.On some systems where both Python 2 & Python 3 are installed, pip and pip3 will do different things. pip installs the Python 2 version of the package, and pip3 will install the Python 3 version of the package. it should install all the modules listed on the file. If this article was helpful, tweet it . |