MacOS Monterey python không tìm thấy

Apple đã cảnh báo rằng mã nhị phân Python 2 sẽ bị xóa. Đó là một thực tế bây giờ. Đọc những việc cần làm tiếp theo

Python có được cài đặt trên máy Mac không?

Đúng. Và Apple đã cảnh báo rằng nhị phân Python 2 được cài đặt sẵn, là một phần của hệ thống Mac kể từ Mac OS X Jaguar 10. 2, sẽ bị xóa trong "phiên bản macOS tương lai" kể từ khi ghi chú phát hành beta ban đầu cho macOS Catalina được phát hành. Hơn nữa, Apple đã tuyên bố rằng thời gian chạy tập lệnh, chẳng hạn như thời gian chạy cho Python, Ruby và Perl sẽ không còn được đưa vào các phiên bản macOS trong tương lai. Hướng dẫn dành cho nhà phát triển là bao gồm bất kỳ thời gian chạy nào mà giải pháp của họ phụ thuộc vào trong ứng dụng của họ

Tại sao lại cần sự thay đổi này?

Kể từ tháng 1 năm 2020, tổ chức giám sát quá trình phát triển Python và phát hành Python chính thức ngừng hoạt động kể từ phiên bản 2. 7 ủng hộ Python 3 mới hơn, an toàn hơn và các phiên bản tiếp theo. Điều này có nghĩa là các bản cập nhật, sửa lỗi và cập nhật bảo mật sẽ chỉ hỗ trợ Python 3. x tiến về phía trước, vì Python 2 đã hết hạn sử dụng

Mặc dù Python 3 là phiên bản kế nhiệm chính thức, nhưng việc cập nhật mã Python từ phiên bản 2. x đến 3. x không phải là một công việc tầm thường. Người ta chỉ đơn giản là không thể thay thế thời gian chạy bằng phiên bản mới hơn và mong đợi mọi thứ "chỉ hoạt động. " Điều này thậm chí còn đúng với các phiên bản nhỏ khác nhau của Python 3 hiện được hỗ trợ song song, bằng chứng là Python 3. 7-3. 10 hiện đang được hỗ trợ [tại thời điểm viết bài này] trong khi Python 3. 11 đang trong giai đoạn thử nghiệm

Ngoài cảnh báo bằng văn bản cho các nhà phát triển trong ghi chú phát hành macOS, Apple đã thực hiện thêm một bước để hiển thị thông báo thông tin khi người dùng cố gắng sử dụng thời gian chạy Python 2 không dùng nữa trong macOS Monterey. Người dùng cuối có thể khó hiểu những cảnh báo này, chủ yếu được đưa vào để hỗ trợ nhà phát triển và quản trị viên theo dõi các ứng dụng và tập lệnh yêu cầu cập nhật. Bổ sung bao gồm trong ghi chú phát hành beta cho macOS Monterey 12. 3, Apple tuyên bố rằng thư mục /usr/bin/Python sẽ bị xóa hoàn toàn

Trong nỗ lực tăng cường bảo mật bằng cách xóa thời gian chạy lập trình không dùng nữa khỏi macOS hàng đầu của nó – ngay cả khi có tất cả các cảnh báo đầy đủ trong nhiều năm – việc loại bỏ chức năng ở quy mô này trong bản cập nhật có thể dẫn đến sự cố cho người dùng, quản trị viên cũng như nhà phát triển. Mặc dù Apple có lịch sử ghi chép đầy đủ về việc bổ sung các tính năng cho người dùng cuối và quản lý trong "Bản cập nhật mùa xuân" của họ, nhưng việc loại bỏ chức năng có thể xảy ra trong một bản cập nhật nhỏ là không bình thường và do đó, không được mong đợi

Phức tạp hơn nữa, giai đoạn beta cho một bản cập nhật nhỏ ngắn hơn nhiều [6-8 tuần] so với giai đoạn beta cho các bản phát hành hệ thống chính [4-5 tháng]. Nếp nhăn được thêm vào này khiến các nhà phát triển và quản trị viên mất ít thời gian hơn để cập nhật mã, kiểm tra các bản cập nhật và triển khai chúng cho các thiết bị của người dùng

Ví dụ: hộp thoại cảnh báo được giới thiệu trong macOS Monterey buộc hầu hết quản trị viên phải cập nhật tập lệnh và công cụ của họ để tuân thủ việc ngừng sử dụng Python 2. 7. Tuy nhiên, các cuộc gọi đến Python 2 kế thừa. 7 thời gian chạy có thể xuất hiện ở một số nơi không mong muốn

tập lệnh Jamf

Đầu tiên, các tập lệnh chính sách và thuộc tính mở rộng trong Jamf Pro có thể được viết hoàn toàn cho Python 2. 7. Bạn có thể xác định các tập lệnh này bằng dấu #. /usr/bin/Python hoặc #. /usr/bin/env Python shebang trong dòng đầu tiên của tập lệnh. Các tập lệnh Shell cũng có thể gọi Python để sử dụng một số chức năng hệ thống. Laurent Pertois có một tập lệnh sử dụng API Jamf để tìm kiếm trong tất cả các tập lệnh và thuộc tính tiện ích mở rộng để sử dụng lệnh Python. Điều này sẽ cung cấp cho bạn một danh sách các vị trí để kiểm tra nơi tìm thấy việc sử dụng Python

Một cách sử dụng phổ biến của Python là xác định người dùng hiện đang đăng nhập. Tồn tại một sự thay thế chỉ có trình bao cho điều này, cũng như JavaScript cho Tự động hóa [JXA] cũng là một giải pháp hữu ích cho một số lớp lót Python phổ biến hơn. Bạn cũng có thể tìm thấy các thay thế hữu ích cho nhiều mục đích sử dụng quản trị của Python trên Jamf Nation và/hoặc trong kênh MacAdmins Slack

Python trong Tập lệnh cài đặt

Bạn cũng sẽ thường xuyên tìm thấy các lệnh gọi hoặc tập lệnh Python trong các tập lệnh trước và sau khi cài đặt trong các gói cài đặt. Vì các pkg thường được xây dựng bởi nhà cung cấp phần mềm, nên có thể bạn hoàn toàn không biết về các tập lệnh Python này. Tôi đã viết một tập lệnh có tên pkgcheck để tìm kiếm đệ quy thông qua một thư mục pkgs của trình cài đặt và liệt kê tất cả các tập lệnh sử dụng Shebang Python hoặc công cụ Python trong mã. Việc sử dụng tập lệnh này chắc chắn sẽ giúp xác định các gói trình cài đặt của bên thứ ba có thể gây ra sự cố trong tương lai

Khi bạn xác định một pkg có tập lệnh sử dụng Python, bạn nên thông báo cho nhà cung cấp rằng trình cài đặt của họ sẽ bị lỗi với macOS 12. 3 trở lên. Bất chấp nỗ lực tốt nhất của bạn, nếu nhà cung cấp phần mềm không thể cung cấp bản cập nhật kịp thời, hãy tận dụng Nhóm thông minh của Jamf Pro để ngăn cài đặt gói này trên máy Mac đã được cập nhật lên macOS 12. 3 trở lên có thể giúp khắc phục mọi sự cố có thể ảnh hưởng tiêu cực đến hiệu suất của người dùng cuối. Bạn cũng có thể cố gắng tự cập nhật các tập lệnh Python bị ảnh hưởng và đóng gói lại phần mềm để triển khai, nhưng tùy thuộc vào chức năng của tập lệnh cài đặt, đó có thể là một nhiệm vụ khó khăn

Các công cụ khác

Các công cụ nguồn mở dành cho quản trị viên Mac thường được viết hoàn toàn bằng Python 2. Bạn có thể xác định chúng bằng shebang, như đã đề cập trước đây. Khi shebang là /usr/bin/Python, thì nó đang sử dụng Python 2 tích hợp, sau đó sẽ bị lỗi trên macOS 12. 3. Kiểm tra trang web hoặc kho lưu trữ GitHub của nhà phát triển để tìm công cụ được đề cập có thể mang lại các bản cập nhật hoặc hướng dẫn để các công cụ này hoạt động trong macOS 12. 3 và các phiên bản mới hơn. Nếu cảm thấy thoải mái, bạn cũng có thể thử yêu cầu giải pháp từ các quản trị viên Mac khác trong Jamf Nation hoặc kênh MacAdmins Slack để biết các giải pháp thay thế

Một ví dụ về các loại giải pháp có thể tồn tại cho sự cố cụ thể của bạn là công cụ DockUtil. Trong khi các nhà phát triển đang làm việc trên phiên bản Python 3 mới, bạn có thể tìm thấy một công cụ thay thế trong , đã hỗ trợ Python 3

Python 3 muôn năm

Mặc dù Python 3 không phải là sự thay thế thả xuống cho Python 2, nhưng nó vẫn là bước tiến hợp lý nhất. Tuy nhiên, có tệp nhị phân Python 3 trong macOS, tuy nhiên, nó chỉ là tệp nhị phân giữ chỗ chuyển hướng đến thời gian chạy Python được cài đặt bằng Xcode hoặc nhắc người dùng cài đặt Công cụ dòng lệnh dành cho nhà phát triển. Mã nhị phân Python 3 có trong macOS không phải là một giải pháp thay thế tốt cho Python 2 không dùng nữa

Như Apple đã đề xuất trong ghi chú phát hành macOS Catalina, khi bạn muốn có phiên bản Python mà bạn có thể tin cậy, giải pháp tốt nhất là cung cấp phiên bản của riêng bạn

Tác giả DockLib khuyến nghị sử dụng phiên bản MacAdmins Python. Dự án mã nguồn mở này cung cấp trình cài đặt pkg cho Python 3, được cấu hình sẵn với một tập hợp các mô-đun Python hữu ích được cài đặt sẵn. Nó cũng cài đặt vào một vị trí không chuẩn trong hệ thống tệp để tránh xung đột với các phiên bản Python khác mà các nhà phát triển có thể đang sử dụng

Đây là một giải pháp tuyệt vời khi bạn muốn tiếp tục sử dụng Python cho các công cụ quản trị của mình. Một tùy chọn hữu ích khác là xây dựng Python tùy chỉnh của riêng bạn với các mô-đun bằng công cụ Relocatable-Python của Greg Neagle

Cho dù bạn sử dụng Python nào, hãy nhớ rằng bạn hiện cũng chịu trách nhiệm bảo trì và cập nhật nó.

Trăn lộn

Ngay cả với sự chuẩn bị tốt nhất, quá trình chuyển đổi này sẽ phát sinh một số vấn đề. Bạn sẽ phải kiểm tra, cập nhật và xác minh các tập lệnh của riêng mình, cùng với việc thông báo cho các nhà cung cấp và nhà phát triển công cụ rằng họ nên cập nhật các gói cài đặt của mình để phản ánh các thay đổi đột phá của công cụ khi Python 2 ngừng hoạt động

Bạn có thể phải dựa vào Jamf Pro và Nhóm thông minh để trì hoãn cài đặt phần mềm và cập nhật cho các ứng dụng vẫn sử dụng lệnh gọi Python trong macOS Monterrey 12. 3. Nếu phần mềm quan trọng đối với doanh nghiệp của bạn, bạn có thể thấy rằng việc hoãn cập nhật lên 12. 3 là cần thiết cho đến khi bất kỳ phần mềm phụ thuộc Python 2 nào được vá. Nếu bạn muốn tiếp tục sử dụng Python cho nguồn mở hoặc các công cụ của riêng bạn, thì việc làm theo đề xuất ban đầu của Apple về việc cung cấp và quản lý phiên bản của riêng bạn có thể là con đường tốt nhất phía trước

Tại sao nó nói Python không được tìm thấy?

Lỗi “Python không được công nhận là lệnh nội bộ hoặc lệnh bên ngoài” gặp phải trong dấu nhắc lệnh của Windows. Lỗi xảy ra khi Không tìm thấy tệp thực thi của Python trong biến môi trường do lệnh Python trong dấu nhắc lệnh của Windows .

macOS có xóa Python không?

Do đó, vào tháng 6 năm 2019, Apple đã thông báo ngừng hỗ trợ Python 2. 7 và vào tháng 4 năm 2022, họ đã xóa hỗ trợ cho Python 2. 7 trên các thiết bị macOS chạy Monterey 12. 3 trở lên .

Tại sao máy Mac của tôi không có Python?

Lý do của việc này là Apple đã xóa bản cài đặt Python 2 do hệ thống cung cấp [chi tiết]. Vì vậy, giải pháp/giải pháp cho việc này là sử dụng pyenv để cài đặt Python 2. 7 [hoặc bất kỳ phiên bản cụ thể nào khác mà bạn cần].

Chủ Đề