MacBook của Apple thật tuyệt vời. Chúng đã mang lại hiệu suất và hiệu quả nhất quán trong vài năm qua, khiến chúng trở thành lựa chọn ưa thích của các nhà phát triển [mặc dù chúng hơi 💰 đắt 💰 so với các lựa chọn khác hiện có]. Bài viết này sẽ không đi sâu vào so sánh giữa các tùy chọn khác nhau, nhưng nếu bạn đã mua Apple MacBook mới với chip M1, bạn có thể muốn đọc qua
Tôi đã nhận được một chiếc Apple MacBook Pro với chip M1 mới ngày hôm qua và ngay lập tức tôi gặp sự cố khi thiết lập nó cho các dự án phát triển của mình. Một trong những dự án của tôi sử dụng Python 3. 6 & vì đây là một dự án đã triển khai, nên việc thay đổi phiên bản Python để nó tương thích với người bạn đồng hành mới hào nhoáng của tôi sẽ là một công thức dẫn đến thảm họa 💥
Trước khi tìm hiểu cách giải quyết vấn đề này, hãy tìm hiểu chi tiết hơn về chip M1 mới
Chip M1 mới là gì và điều gì khiến nó khác biệt?Chip Apple Silicon M1 là Hệ thống trên Chip [SoC] đầu tiên của công ty và là chip đầu tiên trong dòng chip Apple Silicon dựa trên ARM
M1 là bộ xử lý 8 nhân, 5 nanomet với kiến trúc bộ nhớ hợp nhất. Điều này cho phép hiệu suất nhanh hơn trên máy tính Mac sử dụng M1 so với CPU, GPU, RAM và các thành phần khác riêng biệt. M1 cũng khẳng định hiệu suất năng lượng tốt hơn với hiệu suất cao hơn trong quá trình sử dụng. Ngoài ra, con chip này sẽ lần đầu tiên cho phép các ứng dụng iPhone và iPad chạy trên Mac
Cho đến bây giờ, bạn có thể đã sử dụng máy Mac hoặc máy tính xách tay dựa trên Intel dựa trên kiến trúc x86_64. Điều này có nghĩa là tất cả các ứng dụng hoặc phần mềm mà bạn có thể quen dùng đều được viết bằng các hướng dẫn được viết cho các bộ xử lý Intel hoặc AMD [x86_64] này
Nhưng với chip M1, mọi thứ đã thay đổi. Bộ xử lý không thể hiểu các hướng dẫn x86_64 nữa và do đó, một số chương trình của bạn có thể không hoạt động với M1
Mặc dù điều quan trọng cần lưu ý là ngày càng có nhiều ứng dụng được làm tương thích với chip M1 mới trên khối
Trăn 3. 9. 1 trở thành phiên bản đầu tiên của ngôn ngữ hỗ trợ macOS 11 Big Sur và lần lượt hỗ trợ MacBook hỗ trợ M1
Tôi biết chính xác bạn đang nghĩ gì
Nhưng chờ đã, Python 3. 9. 1 còn khá mới và ứng dụng của tôi có thể bị hỏng nếu tôi nâng cấp. Điều đó có nghĩa là MacBook mới của tôi không tốt?
Tuyệt đối không
Xin chào, Rosetta 2Rosetta 2 là trình giả lập được thiết kế để kết nối quá trình chuyển đổi giữa bộ xử lý Intel và Apple. Nói một cách đơn giản, nó dịch các ứng dụng được xây dựng cho Intel để chúng chạy trên Apple Silicon
vâng. Vì vậy, các ứng dụng cũ của tôi và bất kỳ ứng dụng nào trong tương lai mà tôi có thể xây dựng sẽ hoạt động với chip mới? . Đây là những gì Apple nói về Rosetta
Rosetta có nghĩa là để dễ dàng chuyển đổi sang silicon của Apple, giúp bạn có thời gian để tạo tệp nhị phân chung cho ứng dụng của mình. Nó không phải là sự thay thế cho việc tạo phiên bản gốc của ứng dụng của bạn
Vì vậy, chính xác thì Rosetta làm gì?
Nếu một tệp thực thi chỉ chứa các hướng dẫn của Intel, macOS sẽ tự động khởi chạy Rosetta và bắt đầu quá trình dịch. Khi quá trình dịch kết thúc, hệ thống sẽ khởi chạy tệp thực thi đã dịch thay cho tệp gốc. Tuy nhiên, quá trình dịch thuật cần có thời gian, vì vậy người dùng có thể nhận thấy rằng các ứng dụng đã dịch đôi khi khởi chạy hoặc chạy chậm hơn
Thông tin thêm về Môi trường Dịch thuật Rosetta tại đây
Bạn có thể cài đặt môi trường Rosetta bằng cách chạy lệnh sau
softwareupdate —-install-rosetta
Sẽ là khôn ngoan khi đề cập rằng bạn có thể chạy toàn bộ Terminal của mình trong Rosetta, mặc dù tôi không chắc liệu có nên làm như vậy hay không
Chuyển đến Finder > Ứng dụng > Tiện ích > Nhấp chuột phải vào ứng dụng đầu cuối và chọn 'Nhận thông tin'. Chọn hộp có nội dung 'Mở bằng Rosetta' và đóng
Nguồn. MacBook Pro của tôi
Tôi có một sự thật thú vị về Rosetta ở cuối bài viết cho bạn. Hãy tập trung vào việc lấy Python 3 của chúng tôi. 6 môi trường làm việc trên MacBook mới
Để đạt được điều này, chúng tôi sẽ sử dụng Trình quản lý gói Nix. Không tìm hiểu quá nhiều về nó, Nix là trình quản lý gói đa nền tảng sử dụng mô hình triển khai chức năng thuần túy, nơi phần mềm được cài đặt vào các thư mục duy nhất được tạo thông qua hàm băm mật mã
Hãy làm theo các bước dưới đây
1. Kích hoạt Rosetta
Cài đặt Rosetta bằng cách chạy lệnh được cung cấp một vài dòng ở trên
2. Cài đặt Nix
Thao tác này sẽ cài đặt Nix trên máy Mac của bạn. Bước tiếp theo là tạo một mục nhập vào .zprofile
— cấu hình môi trường cho shell của bạn. Điều này cho phép chúng tôi sử dụng nix thông qua trình bao
sh Preferences > Project > Python Interpreter > Add New > Existing Environment
Nếu bạn cần trợ giúp thêm để định cấu hình Trình thông dịch Python cho PyCharm, thì đây là liên kết đến tài liệu
Đối với Visual Studio Code, hãy xem bài viết này
Được rồi, đó là nó cho bài viết này…. Oh chờ đã, tôi đã hứa với bạn một sự thật thú vị về Rosetta trước đó, phải không?
Rosetta, tôi đã nghe tên này trước đâyApple đã sử dụng tên Rosetta trước đây. Khi chuyển Mac từ bộ xử lý PowerPC sang chip Intel, nó đã sử dụng cùng một tên để thực hiện chức năng tương tự — cho phép các ứng dụng PowerPC chạy trên chip Intel
Mặc dù tên và mục tiêu vẫn giữ nguyên, nhưng có một sự khác biệt lớn giữa Rosetta cũ và phiên bản chúng tôi đang sử dụng ngày nay vì Apple đã phát triển bộ xử lý mục tiêu, có nghĩa là nó biết chính xác Rosetta cần làm gì