Phiên bản python-devel

Việc thiết lập Python thường đơn giản, nhưng có một số chỗ mà người mới [và người dùng có kinh nghiệm] cần phải cẩn thận. Có những phiên bản nào?

Ghi chú. hướng dẫn này là ý kiến

nội dung

Cộng đồng Python đã trải qua một cuộc chia rẽ trong những năm gần đây. Python 3, phát hành năm 2008, đã phá vỡ khả năng tương thích ngược. phản đối một số cấu trúc và thư viện xấu [ví dụ:. raw_input[] đã trở thành input[] và chức năng Python 2 ban đầu chạy mã do người dùng nhập vào đã biến mất;

Đối với mã mới, bạn nên sử dụng Python 3. Hầu hết các gói phổ biến đều hỗ trợ Python 3 và nhiều gói hỗ trợ cả hai Python cùng lúc. Các lỗi ban đầu đã được giải quyết trong một vài bản phát hành điểm đầu tiên, một số tính năng giúp chuyển đổi dễ dàng hơn đã được thêm vào [quay lại]

Nhưng nếu sau này bạn cần Python 2 thì sao? . bạn có thể tìm hiểu sự khác biệt trong một thời gian ngắn và với sự trợ giúp của một số thư viện [ví dụ:. six] bạn có thể dễ dàng viết mã tương thích với Python 2 và 3 cùng một lúc, sử dụng cùng một cơ sở mã [hầu hết các thư viện hiện có đều làm điều đó]

Python 2 sẽ chuyển sang EOL và mất hỗ trợ và cập nhật chính thức vào năm 2020

Đọc thêm. Python 2 hoặc Python 3 trên Python Wiki

Đúng. Lưu ý rằng nhiều trình thông dịch Python hoàn toàn riêng biệt. họ có gói và pip riêng và bạn không thể chạy mã Python 2 trong trình thông dịch Python 3. Bạn cần chỉ định trình thông dịch nào sẽ sử dụng khi cài đặt các gói và chạy một số tập lệnh [ví dụ:. pip2, pip3 hoặc python3 -m pip]

Tốt nhất bạn nên giới hạn bản thân với phiên bản Python 2 và 3 mới nhất. Python tương thích ngược trong bản phát hành chính, vì vậy Python 2. 7 chạy mã được viết bằng 2 cũ hơn. phiên bản x trong tâm trí

Ngôn ngữ lập trình là một cấu trúc trừu tượng. Để chạy mã được viết bằng ngôn ngữ đó, cần phải viết trình thông dịch hoặc trình biên dịch. Trong trường hợp của Python, có rất nhiều cách triển khai. một số trong số họ là

  • CPython là triển khai tham chiếu. Đây là triển khai được phân phối trên https. //trăn. org/ và là một phần của nhiều hệ điều hành. Hầu hết các tính năng Python được triển khai đầu tiên trong CPython, sau đó chúng được chuyển sang các triển khai khác. Nếu bạn không biết chọn gì, hãy sử dụng CPython

  • PyPy là một triển khai nhanh, được viết bằng một tập hợp con của Python. Nó tương thích với Python 2. 7 và 3. 5 [hỗ trợ thử nghiệm]. Nó có thể chạy tất cả mã Python thuần túy và nhiều thư viện tiện ích mở rộng sử dụng CFFI

  • IronPython là một. triển khai NET CLR. Nó có thể tích hợp với. mã mạng

  • Jython là một triển khai Java JVM. Nó có thể tích hợp với mã Java, cũng như các ngôn ngữ JVM khác

Đọc thêm. Triển khai Python trên Python Wiki

Ngoài ra còn có các bản phân phối Python [CPython]. Họ gửi trình thông dịch CPython và thêm một số gói/tính năng bổ sung. Chúng được duy trì bởi các cộng đồng hoặc tổ chức doanh nghiệp khác

Bản phân phối phổ biến nhất của bên thứ ba là Anaconda từ Continuum Analytics. Nó phổ biến đối với các nhà khoa học dữ liệu và bao gồm hơn 100 gói, với các tệp nhị phân dựng sẵn bổ sung có sẵn từ trình quản lý gói conda

Cá nhân tôi khuyên bạn nên tránh Anaconda

  • Hầu hết các gói đều có bánh xe nhị phân cho Windows, macOS và Linux [vâng, Linux. ] làm cho việc cài đặt trở nên đơn giản như input[]0

  • Bạn lãng phí dung lượng ổ đĩa cho các gói mà Anaconda cài đặt mà bạn sẽ không bao giờ cần đến

  • Nó được cung cấp bởi một số công ty vì lợi nhuận ngẫu nhiên

  • Tôi đã thấy các lỗi không thể tái tạo bên ngoài Anaconda

  • Bạn vẫn có thể làm khoa học dữ liệu bằng bản phân phối chính thức. Không có gì đặc biệt về Anaconda

Đọc thêm. Bản phân phối Python trên Python Wiki

Vâng, bạn có thể. Có các công cụ cho việc này — PyInstaller là công cụ tốt nhất. Lưu ý rằng bạn thường cần chạy nó trên hệ điều hành đích. Và hãy nhớ rằng việc “biên dịch” thành các tệp exe như vậy không phải là biện pháp bảo mật — mã nguồn của bạn vẫn có thể phục hồi dễ dàng. [Đây cũng không phải là một biện pháp bảo mật trong các ngôn ngữ khác, ngay cả khi việc lấy lại mã nguồn có thể đắt hơn/khó khăn hơn trong các ngôn ngữ đó. ]

Lựa chọn tài liệu học tập rất quan trọng. Nếu bạn nhận được một cuốn sách tồi, nó có thể khiến bạn không muốn học [vì nó nhàm chán] hoặc có thể dạy cho bạn những cách thực hành tồi/lỗi thời

Nếu bạn đã có thể lập trình bằng ngôn ngữ khác, tôi khuyên bạn nên xem hướng dẫn Python chính thức. Đối với những người mới bắt đầu lập trình, tôi khuyên bạn nên Nghĩ về Python hoặc Tự động hóa những thứ nhàm chán bằng Python. Họ dạy Python 3 và [hầu hết] các phương pháp hay nhất

Nếu bạn cần trợ giúp, hãy thử input[]1 trên freenode IRC, danh sách gửi thư Tutor hoặc Python-list hoặc một loạt các cộng đồng khác. [Tôi thường xuyên xem trên input[]1]

Hướng dẫn này sẽ tập trung vào việc cài đặt CPython 2. 7 và 3. x [mới nhất], sử dụng phân phối chuẩn. Sự lựa chọn này là thỏa đáng cho hầu hết mọi người. Phân phối của bên thứ ba, trong khi tiện dụng trong một số trường hợp, không cần thiết cho hầu hết. [Xem đối số]

Xuyên suốt hướng dẫn này, tôi sẽ đề cập đến trình thông dịch Python có thể thực thi được là input[]3. Tên chính xác phụ thuộc vào hệ thống của bạn và phiên bản mong muốn. Trên hầu hết các hệ điều hành, input[]3 là Python 2 và input[]5 là 3; . Trên Arch Linux, input[]3 là Python 3. Trên Windows, sử dụng trình khởi chạy input[]8

Tải xuống [các] trình cài đặt. https. //www. con trăn. org/tải xuống/

Những trình cài đặt đó đi kèm với input[]9 và Python 3 hiện đại. x đi kèm với trình khởi chạy input[]8. Bạn có thể sử dụng trình khởi chạy đó để chọn một phiên bản Python cụ thể, vd

  • print[]1

  • print[]2

  • print[]3

  • input[]8 [phiên bản hệ thống mặc định]

Nó được khuyến nghị sử dụng nhiều nhất và bắt buộc phải nâng cấp pip

Các phiên bản 32 bit linh hoạt hơn. Hầu hết các gói đều hỗ trợ cả hai [ngoại lệ duy nhất mà tôi biết là Tensorflow, chỉ cho phép Python 3 64 bit. 5 tính đến thời điểm hiện tại]

macOS xuất xưởng với Python 2. 7. 10 [kể từ macOS Sierra]. Nó không phải là phiên bản mới nhất; . Bạn có thể cài đặt 2 cái mới nhất. 7, cũng như Python 3, sử dụng trình quản lý gói. Tôi khuyên dùng Homebrew — đó là giải pháp phổ biến nhất và cho phép bạn cài đặt nhiều gói khác

KHÔNG sử dụng con trăn. trình cài đặt tổ chức. họ không có trình gỡ cài đặt, vì vậy bạn sẽ có các phiên bản lỗi thời sau một thời gian. Không có tự động cập nhật là tốt. KHÔNG cố gắng xóa Python đã cài đặt hệ thống, điều này sẽ chỉ làm hỏng hệ thống của bạn và bạn sẽ cần phải cài đặt lại

Nếu bạn đã cài đặt trình quản lý gói [MacPorts, Fink], đừng cài đặt cái mới và chỉ sử dụng cái hiện có

  1. Cài đặt Homebrew

  2. Chạy print[]6

  3. Bây giờ bạn sẽ có input[]3, input[]5, input[]9 và pip3

Để cập nhật Homebrew và Python, hãy chạy zip1

Trên Linux, thường có các gói đủ tốt trong kho hệ điều hành của bạn. Bạn sẽ có thể cài đặt gói thích hợp cho Python [2 và/hoặc 3]. Hầu hết [nếu không phải tất cả] các bản phân phối đều yêu cầu Python — không xóa các gói đã cài đặt sẵn và cẩn thận không ghi đè lên chúng bằng một gói mới hơn

Nếu phiên bản đi kèm với bản phân phối của bạn quá cũ, thì có một số tùy chọn. Có thể có một số kho lưu trữ với các phiên bản tốt hơn, ví dụ:. PPA xác chết cho Ubuntu. Sau đó, có tùy chọn khác để biên dịch Python. Có một số công cụ hỗ trợ việc này, như zip2 hoặc zip3 [chúng cũng có thể quản lý nhiều phiên bản Python] hoặc bạn có thể thực hiện thủ công. Các hướng dẫn tùy thuộc vào yêu cầu chính xác của bạn, nhưng đây là tóm tắt

  1. Tải xuống bản phân phối nguồn từ Python. org và giải nén nó. Vào thư mục nguồn đã giải nén

  2. Đảm bảo bạn có trình biên dịch C chức năng và các phần phụ thuộc của Python. Bạn thường có thể sử dụng trình quản lý gói của hệ thống để cài đặt các phụ thuộc bản dựng của Python hệ thống của bạn. Một số phụ thuộc là tùy chọn [ví dụ:. zip4 yêu cầu tiêu đề SQLite]

  3. Chạy zip5 và sau đó là zip6. [Bạn có thể thêm các tùy chọn khác cho cả hai. Nó sẽ mất chút thời gian. ]

  4. Chạy zip7 với quyền root. Tránh zip8, vì nó có thể ghi đè lên các tệp thực thi của input[]3

Nhớ. biên dịch Python nên được coi là phương sách cuối cùng, trừ khi bạn có các yêu cầu phiên bản Python rất cụ thể

Để cài đặt các gói của bên thứ ba, bạn nên sử dụng pip, trình quản lý gói Python. Nếu bạn đang sử dụng Windows hoặc macOS [từ Homebrew], pip sẽ được bao gồm trong bản sao Python của bạn. Nếu bạn đang dùng Linux và đã cài đặt Python từ kho lưu trữ hệ thống, hãy cài đặt đúng gói hệ thống [range0, range1]. Nếu bạn đã biên dịch Python của riêng mình, thì pip cũng được bao gồm

Để chạy pip, hãy sử dụng range2 [Windows], range3 [các nền tảng khác] hoặc các lệnh ngắn input[]9/pip3

KHÔNG BAO GIỜ sử dụng sudo pip. Điều này có thể gây ra nhiều vấn đề

  • xung đột giữa các gói được cài đặt bởi pip và trình quản lý gói hệ thống của bạn

  • gói hệ thống sửa đổi pip, dẫn đến sự cố khi cập nhật chúng hoặc phá vỡ các phụ thuộc

  • không có sự tách biệt giữa các phiên bản gói, đôi khi cần thiết để đáp ứng các phụ thuộc

Lưu ý rằng cài đặt gói dành riêng cho trình thông dịch Python được sử dụng để chạy input[]9. Các gói được cài đặt vào virtualenv tách biệt với các gói hệ thống; . 7 tách biệt với 3. 6 gói. Môi trường ảo thường không sử dụng các gói hệ thống, trừ khi được kích hoạt cụ thể trong quá trình tạo

Một số bản phân phối có các gói phổ biến trong kho của chúng. Đôi khi chúng tốt; . [Đặc biệt là vì hầu hết các lỗi đều được đóng bằng “chúng tôi đã sửa lỗi đó từ lâu rồi”]

Ở quy mô nhỏ, bạn có thể cài đặt các gói bằng pip cho một người dùng. Sử dụng range7 để làm điều này. Nếu gói của bạn cài đặt tập lệnh, chúng sẽ được cài đặt vào range8 trên Linux và range9 trên macOS [X. Y là phiên bản Python] hoặc bạn có thể sử dụng six0 nếu gói hỗ trợ

Đối với hầu hết mọi người và dự án, môi trường ảo tốt hơn. Tuy nhiên, có những trường hợp sử dụng để đặt một số gói cho toàn người dùng — nếu bạn không làm việc trong các dự án mà thay vào đó đang thực hiện các dự án nghiên cứu một lần, thì những gói đó sẽ phù hợp hơn khi cài đặt trên toàn người dùng

Tôi đã viết một bài mới hơn, chi tiết hơn về virtualenvs. Môi trường ảo Python trong 5 phút

Môi trường ảo là cách tốt nhất để cài đặt và quản lý các gói Python. Ưu điểm bao gồm

  • Cô lập các dự án và yêu cầu của họ. nếu một ứng dụng/gói yêu cầu phiên bản thư viện X, nhưng một ứng dụng/gói khác yêu cầu phiên bản Y, thì chúng có thể tồn tại trong các môi trường ảo riêng biệt

  • Độc lập với các gói toàn hệ thống

  • Nhẹ [một virtualenv trống khoảng 10 MB]

  • Đơn giản để tạo lại ở mọi nơi [six1 → six2]

Có hai công cụ hỗ trợ tạo môi trường ảo. dự án virtualenv cũ hơn và mô-đun six3 mới hơn. Mô-đun six3 được cung cấp cùng với Python 3. x; . Sử dụng cái nào phù hợp với bạn. Virtualenv tương thích với nhiều phiên bản Python hơn và không thể bị phá vỡ bởi những người bảo trì gói hệ điều hành không đủ năng lực [six3 yêu cầu một gói bổ sung trên Debian]

Có nhiều trường phái suy nghĩ về vị trí và nội dung virtualenv. Bản thân tôi sử dụng virtualenvwrapper để quản lý virtualenv và đặt chúng vào six6. Những người khác đặt virtualenv bên trong kho git của họ [nhưng chúng phải ở trong six7] Virtualenv chỉ nên chứa các gói được cài đặt với input[]9 để chúng có thể được tạo lại nhanh chóng

Tôi cũng sử dụng plugin six9 cho Oh My Zsh, plugin này cũng kích hoạt các virtualenv có cùng tên với git repo hoặc môi trường được đặt tên bởi tệp pip20

Để cài đặt virtualenv cho toàn người dùng, hãy sử dụng pip21. Sau đó, bạn có thể sử dụng nó với pip22. Bạn có thể vượt qua các tùy chọn bổ sung, ví dụ:. thông dịch viên sử dụng [______6_______3]. Đôi khi bạn cần cài đặt virtualenv cho mọi phiên bản Python;

Làm thế nào để sử dụng chúng?

  • Một số người tin rằng kích hoạt [_______6_______4 trên *nix; pip25 trên Windows] là điều nên làm và đơn giản hóa công việc

  • Những người khác nghĩ rằng bạn nên sử dụng trực tiếp pip26 [hoặc các tập lệnh khác trong thư mục đó], vì kích hoạt chỉ thay đổi pip27 và một số biến của trình trợ giúp — những biến đó không bắt buộc để hoạt động, chạy đúng ____1_______3 là

  • Những người khác vẫn nghĩ rằng virtualenv nên được sử dụng trong subshells

Theo tôi, nếu kích hoạt virtualenv hoạt động trong môi trường của bạn, bạn nên làm điều đó — đó là tùy chọn thuận tiện nhất. Tuy nhiên, có những trường hợp kích hoạt không thành công hoặc không thể thực hiện được — gọi trực tiếp cho pip26 là cách tốt nhất trong trường hợp đó. Nếu bạn đang làm việc bên trong shell script, đừng kích hoạt virtualenvs. Tôi không phải là người hâm mộ tùy chọn subshell, vì nó làm phức tạp mọi thứ nếu bạn làm việc trên nhiều dự án và yêu cầu theo dõi việc sử dụng theo cách thủ công

Nâng cấp hệ thống Python có thể khiến virtualenv của bạn không sử dụng được. Để nâng cấp phiên bản vá lỗi, bạn chỉ cần cập nhật các liên kết tượng trưng [xem fix-venvs. sh]. Tuy nhiên, nếu phiên bản phụ thay đổi, tốt nhất bạn nên tạo lại virtualenv [bạn cần tạo trước pip30]

Bạn không thể di chuyển virtualenv giữa các thư mục/máy hoặc đổi tên virtualenv. Bạn cần sử dụng six1, tạo một virtualenv mới và chạy six2 [sau đó bạn có thể xóa môi trường cũ bằng một pip33 đơn giản]

Tình hình được cải thiện đáng kể trong năm qua hoặc lâu hơn. Ngày nay, hầu hết tất cả các gói đều có sẵn gói được biên dịch sẵn trong PyPI. Các gói đó hoạt động cho Windows, macOS và Linux. Có các gói dành cho một số lỗi phổ biến nhất, bao gồm Gối, lxml, PyQt5, numpy… Tuy nhiên, vẫn có thể có các gói không có bánh xe trên PyPI

Nếu không có bánh xe cho một gói và bạn đang sử dụng Windows, hãy xem các tệp nhị phân không chính thức của Christoph Gohlke. Nếu bạn không thể tìm thấy bất kỳ bánh xe nào trực tuyến, bạn sẽ phải dùng đến cách biên dịch nó theo cách thủ công — điều này yêu cầu cài đặt Visual Studio [Visual C++] trong phiên bản phù hợp với Python của bạn và việc này hơi khó thực hiện

Nếu bạn không sử dụng Windows, bạn phải cài đặt trình biên dịch C và chuỗi công cụ. Nếu bạn nhận được cảnh báo về việc thiếu pip34, hãy cài đặt gói phát triển thích hợp — ví dụ: pip35 hoặc pip36] trên Debian/Ubuntu, pip37 hoặc pip38 trên RHEL/Fedora. Gói bạn đang cố cài đặt có thể có các phần phụ thuộc khác mà bạn cần cài đặt [phần pip39 cũng quan trọng]

Nếu bạn đang làm việc trong một dự án, hãy sử dụng ____8_______0 bên trong thư mục dự án để cài đặt gói trong môi trường của bạn ở chế độ phát triển [có thể chỉnh sửa]. Thao tác này tải mã trực tiếp từ kho lưu trữ của bạn — bạn không cần phải cài đặt lại sau mỗi thay đổi;

Một điều quan trọng khác mà nhà phát triển nên quan tâm là lựa chọn trình chỉnh sửa. Đây là một quyết định quan trọng, và là nguyên nhân của nhiều cuộc thánh chiến trong cộng đồng lập trình viên

Một trình soạn thảo tốt nên có đánh dấu cú pháp cho tất cả các ngôn ngữ bạn cần làm việc. Nó cũng nên có các tính năng như khối trực quan/nhiều lựa chọn, tìm và thay thế tinh vi, tìm tệp, hoàn thành mã và nhiều tính năng nhỏ nhưng hữu ích khác

Sau đó, có sự khác biệt giữa IDE và trình soạn thảo văn bản. Trình soạn thảo văn bản đơn giản hơn, trong khi IDE cố gắng đưa vào nhiều thứ bổ sung không nhất thiết liên quan đến viết mã. Các IDE thường sử dụng nhiều tài nguyên hơn, nhưng bạn sẽ không nhận thấy điều đó với một máy tính hiện đại [đặc biệt là với SSD]

IDE tốt nhất hiện có là PyCharm từ JetBrains. Nó có cả phiên bản Cộng đồng miễn phí và phiên bản Chuyên nghiệp trả phí. Các thành viên của JetBrains là những chuyên gia về IDE — họ có các công cụ chính thức cho nhiều ngôn ngữ. Giải pháp Python của họ cung cấp rất nhiều tùy chọn hỗ trợ các lập trình viên trong công việc của họ. Ngoài ra, nếu bạn làm việc với Java hoặc nhiều hơn một ngôn ngữ được IDEA hỗ trợ, thì hãy cài đặt IntelliJ IDEA và plugin Python [có các tính năng tương tự như PyCharm]. Sinh viên có thể nhận giấy phép Professional/Ultimate miễn phí cho các sản phẩm JetBrains

Tôi cũng dành nhiều thời gian cho Vim [chính xác là neovim/VimR]. Vim là trình soạn thảo văn bản mạnh mẽ nhất hiện có và với bộ plugin phù hợp, nó có thể đánh bại các IDE về tốc độ và năng suất. Vim có đường cong học tập dốc, nhưng nó đáng giá — bạn có thể thực hiện những thay đổi lớn chỉ bằng một vài lần nhấn phím. Vim được coi là tốt đến mức nhiều IDE [Visual Studio, IntelliJ IDEA/PyCharm] có plugin mô phỏng Vim

Một tùy chọn khác là Visual Studio Code — đây là trình soạn thảo văn bản nhưng có thể cung cấp nhiều tính năng giống như IDE với bộ plugin phù hợp. Đó là kiến ​​trúc dựa trên Electron, hoặc thực sự dựa trên Chromium của Google, thật không may và có thể dẫn đến hiệu suất khủng khiếp trên các máy cấp thấp hơn và trên các máy cao cấp hơn trong một số trường hợp. [Theo kinh nghiệm của tôi, nó tốt hơn Atom. ] Bạn cũng có thể dùng thử Sublime Text [$80]

Nhưng thực sự, hầu như bất kỳ biên tập viên nào cũng sẽ làm. Nhưng vui lòng tránh IDLE, trình chỉnh sửa đi kèm với Python. Nó thiếu một số thứ cơ bản nhất — nó thậm chí không có tùy chọn hiển thị số dòng. Chưa kể đến sự xấu xí của nó. Ngoài ra, không sử dụng Notepad và TextEdit. Những thứ đó quá đơn giản và Notepad có vấn đề về mã hóa

Phiên bản python dev là gì?

Đây là gói phát triển phổ biến chứa các tệp tiêu đề mà nhà phát triển yêu cầu để xây dựng các tiện ích mở rộng Python . Python-dev bao gồm các tài liệu tiêu đề để chế tạo các phần mở rộng của Python. lxml là một phần mở rộng cho Python C-API được biên dịch rõ ràng khi các nhà phát triển thực hiện 'pip install lxml'.

Liệu con trăn 3. 9 6 có píp không?

Trăn 3. 4+ trong hầu hết các hệ điều hành bao gồm pip3 theo mặc định. Nếu phiên bản python của bạn nhỏ hơn 3. 4, thì bạn nên nâng cấp phiên bản Python của mình, phiên bản này sẽ tự động cài đặt pip3. Ví dụ: bạn có thể cài đặt phiên bản Python mới nhất từ ​​ActiveState [Python 3. 9], bao gồm pip3 .

Làm cách nào để cài đặt python3 dev bằng pip?

Cài đặt pip bằng công cụ thiết lập của Python 3. chạy sudo easy_install3 pip , thao tác này sẽ cung cấp cho bạn lệnh pip-3. 2 thích giải pháp của kev. Cài đặt các gói PyPI của bạn. chạy sudo pip-3. 2 cài đặt

Liệu con trăn 3. 9 1 có pip không?

Phiên bản hiện tại của pip hoạt động trên. Windows, Linux và MacOS. CPython 3. 7, 3. 8, 3. 9, 3. 10 và PyPy3 mới nhất .

Chủ Đề