Tôi có thể cài đặt 2 phiên bản Python trên máy Mac không?

Bài viết này mô tả cách quản lý môi trường Python ARM64 và x86 bằng pyenv. Nếu bạn thích điều kiện để quản lý môi trường, hãy xem bài viết khác của tôi

Bạn có thể sẽ không sử dụng cùng một phiên bản Python cho tất cả các dự án của mình trong suốt phần đời còn lại. Một mặt, Python là một ngôn ngữ tích cực và bạn sẽ muốn tận dụng các tính năng mới nhất [Python 3. 10 đã được phát hành gần đây. ]. Mặt khác, bạn không muốn phá vỡ tất cả mã cũ của mình khi nâng cấp phiên bản Python đã cài đặt của mình. Là một nhà khoa học dữ liệu, tôi luôn gặp phải vấn đề này — tôi thường xuyên phải chạy lại các phân tích hoặc dự án cũ, vì vậy tôi cần một cách để hỗ trợ nhiều phiên bản Python trên máy của mình

Đó là nơi quản lý phiên bản xuất hiện và công cụ ưa thích của tôi là pyenv. Với pyenv, bạn có thể cài đặt nhiều phiên bản Python trên máy của mình và dễ dàng chuyển đổi giữa chúng

Ghi chú. bài viết này hướng đến người dùng Mac và đặc biệt là người dùng Apple Silicon Mac. Người dùng Linux có thể được hưởng lợi từ hướng dẫn pyenv, nhưng người dùng Windows thì không gặp may — pyenv không hỗ trợ chính thức cho Windows

Cài đặt các phiên bản Python bằng pyenv

Thật dễ dàng để cài đặt và quản lý nhiều phiên bản Python bằng pyenv. Xem tài liệu để biết đầy đủ chi tiết, nhưng đây là hướng dẫn đơn giản để cài đặt bất kỳ phiên bản Python nào

1. Cài đặt Homebrew

Homebrew là trình quản lý gói cho MacOS. Nó cho phép bạn cài đặt tất cả các loại công cụ hữu ích. Để cài đặt nó, hãy làm theo các hướng dẫn đơn giản tại đây

2. Cài đặt và cấu hình pyenv

pyenv là một công cụ quản lý phiên bản Python. Nó cho phép bạn cài đặt nhiều phiên bản Python và dễ dàng chuyển đổi giữa chúng

Để cài đặt, hãy làm theo các hướng dẫn sau [hoặc xem hướng dẫn cài đặt đầy đủ trên kho lưu trữ GitHub chính thức]

  1. Cài đặt bằng brew. brew install pyenv
  2. Thêm các dòng sau vào ~/. hồ sơ cá nhân và ~/. zshrc [hoặc ~/. bash_profile và ~/. bashrc nếu bạn vẫn đang sử dụng bash]
##### ~/.zprofile #####
eval "$[pyenv init --path]"

##### ~/.zshrc #####
if command -v pyenv 1>/dev/null 2>&1; then
eval "$[pyenv init -]"
fi

Sau đó thoát khỏi phiên shell của bạn và bắt đầu một phiên mới để các thay đổi có hiệu lực. Bạn đã cài đặt thành công pyenv

3. Cài đặt phiên bản Python

Cài đặt Python với pyenv thật dễ dàng. Ví dụ: để cài đặt Python 3. 9. 7, bạn sẽ chạy pyenv install 3.9.7 [sử dụng pyenv install -l để hiển thị danh sách các phiên bản có sẵn để cài đặt]. Để kích hoạt môi trường, hãy chạy pyenv global 3.9.7 [để biến nó thành phiên bản mặc định ở mọi nơi] hoặc pyenv local 3.9.7 [để chỉ thư mục hiện tại sử dụng phiên bản này]

Những thách thức khác với Apple Silicon Macs

Các bước trên hầu như sẽ luôn là đủ. Tuy nhiên, với các máy Mac mới hơn [cá nhân tôi sử dụng MacBook Air M1], bạn có thể gặp sự cố khi cài đặt một số gói nhất định. Khi Apple chuyển từ chip Intel sang chip Apple Silicon nội bộ của họ, họ đã thay đổi từ kiến ​​trúc x86 sang kiến ​​trúc ARM64. Đây hầu như là một điều tốt — sự khác biệt duy nhất mà bạn sẽ nhận thấy trong quá trình sử dụng hàng ngày là chip mới nhanh hơn và hiệu quả hơn chip cũ

Thật không may, đôi khi bạn có thể gặp phải sự cố tương thích gói. Một số gói Python chưa được hỗ trợ trên kiến ​​trúc ARM64 của Apple — ví dụ: tôi gặp sự cố đó với gói ortools. Bạn sẽ gặp lỗi trong khi cài đặt và bạn sẽ không thể sử dụng gói trong mã của mình. Cuối cùng, vấn đề sẽ biến mất khi các nhà phát triển thêm hỗ trợ ARM64 cho các gói của họ, nhưng bạn sẽ phải tìm một giải pháp khác trong thời gian chờ đợi

May mắn thay, có một giải pháp ngắn hạn. bạn có thể cài đặt Python với kiến ​​trúc x86 trên Apple Silicon Mac. Và tốt hơn nữa, bạn vẫn có thể sử dụng pyenv để quản lý môi trường của mình

môi trường x86 với Rosetta và pyenv

Chỉ làm theo các bước sau nếu bạn cần sử dụng các gói chỉ hoạt động trên kiến ​​trúc x86. Trước tiên hãy thử các bước trước và chỉ đến đây nếu bạn gặp sự cố cài đặt gói. Nếu không, bạn đang hy sinh hiệu suất mà không có lợi ích gì

1. Cài đặt Rosetta

Rosetta là phần mềm cho phép Apple Silicon Mac chạy các ứng dụng được thiết kế cho máy Mac dựa trên Intel. Nếu bạn cần sử dụng phiên bản Python cho kiến ​​trúc x86, bạn sẽ cần Rosetta

Để cài đặt Rosetta, hãy chạy lệnh này trong thiết bị đầu cuối của bạn

softwareupdate --install-rosetta

Sau đó làm theo lời nhắc để đồng ý với thỏa thuận cấp phép và chạy cài đặt

2. Tạo một thiết bị đầu cuối Rosetta

Bây giờ chúng ta cần một cách để chạy các lệnh bằng Rosetta. Đầu tiên, sao chép ứng dụng Terminal. Điều hướng đến /Applications/Utilities và sao chép Terminal

Ảnh chụp màn hình của tác giả

Sau đó đổi tên bản sao mới thành một cái gì đó như “Terminal Rosetta”. Tiếp theo, nhấp chuột phải vào Terminal mới, nhấp vào “Nhận thông tin” và chọn hộp “Mở bằng Rosetta”

Ảnh chụp màn hình của tác giả

Giờ đây, bạn có thể sử dụng thiết bị đầu cuối mới này để thực thi các lệnh bằng Rosetta và kiến ​​trúc x86. Sử dụng nó cho các bước còn lại

3. Cài đặt Homebrew

Thực hiện theo các hướng dẫn đơn giản ở đây. Nó hoàn toàn giống với cài đặt Homebrew trên kiến ​​trúc ARM64, nhưng nó sẽ tự động được cài đặt sang một vị trí khác

4. Cài đặt pyenv

Nếu bạn đã cài đặt nó ở trên, bạn đã hoàn tất. Nếu không, hãy làm theo Bước 2 trong hướng dẫn “Cài đặt phiên bản Python bằng pyenv”

5. Biến đổi. zshrc

Chúng tôi đã cài đặt mọi thứ chúng tôi cần. Bây giờ chúng tôi cần một cách để yêu cầu máy của chúng tôi sử dụng phiên bản x86 của brew và pyenv. Phương pháp ưa thích của tôi là thêm các dòng sau vào. zshrc [hoặc. tệp bashrc]

##### ~/.zshrc ###### rosetta terminal setup
if [ $[arch] = "i386" ]; then
alias brew86="/usr/local/bin/brew"
alias pyenv86="arch -x86_64 pyenv"
fi

Lệnh $[arch] = "i386" xác định xem chúng ta có đang chạy thiết bị đầu cuối Rosetta hay không. Bí danh brew86 gọi phiên bản brew ở vị trí x86 [vị trí ARM64 là

softwareupdate --install-rosetta
0]. Bí danh
softwareupdate --install-rosetta
1 thực thi pyenv theo kiến ​​trúc x86

Ví dụ: bây giờ bạn có thể gọi

softwareupdate --install-rosetta
2 hoặc
softwareupdate --install-rosetta
3 từ thiết bị đầu cuối Rosetta của mình

5. Cài đặt plugin bí danh pyenv [tùy chọn]

Theo mặc định, pyenv không cho phép bạn cung cấp tên tùy chỉnh cho các phiên bản Python của mình. Đó có thể là một vấn đề nếu bạn muốn cài đặt cùng một phiên bản Python trong cả kiến ​​trúc ARM64 và x86. Plugin bí danh pyenv giải quyết vấn đề này. Làm theo hướng dẫn cài đặt tại đây

6. Tạo môi trường x86 của bạn bằng pyenv

Cuối cùng, bạn đã sẵn sàng để cài đặt các phiên bản x86 Python. Trong thiết bị đầu cuối Rosetta của bạn, chỉ cần chạy

softwareupdate --install-rosetta
4 [thay thế phiên bản Python thực cho
softwareupdate --install-rosetta
5]. Nếu bạn đã cài đặt plugin bí danh pyenv ở bước trước, tôi khuyên bạn nên thêm bí danh vào môi trường x86 của mình. Ví dụ,
softwareupdate --install-rosetta
6

Bây giờ khi bạn chạy

softwareupdate --install-rosetta
7, bạn sẽ thấy tất cả các phiên bản Python ARM64 và x86 của mình. Bạn có thể dễ dàng chuyển sang môi trường x86 khi gặp sự cố tương thích gói trong dự án của mình

Phần kết luận

Nếu bạn có Apple Silicon Mac, bạn có thể gặp phải sự cố cài đặt gói vào một ngày nào đó, nhưng các bước trong bài viết này cung cấp một giải pháp thay thế liền mạch [tốt, gần như liền mạch như bạn sẽ nhận được]. Cuối cùng, các bước này có thể lỗi thời sau khi các nhà phát triển có đủ thời gian để thêm hỗ trợ ARM64 vào gói của họ, nhưng điều này có thể mất vài năm đối với một số gói thích hợp. Trong thời gian chờ đợi, tôi hy vọng bài viết này giúp bạn khắc phục sự cố

Quản lý phiên bản Python có thể phức tạp. Cá nhân tôi thích sự đơn giản của pyenv. Có những giải pháp khác [chẳng hạn như conda] nhưng theo tôi pyenv là cách dễ sử dụng nhất. Nếu bạn có một công cụ khác mà bạn thích, tôi rất muốn nghe về nó

Tôi có thể cài đặt hai phiên bản Python trên máy Mac không?

Với pyenv, bạn có thể cài đặt nhiều phiên bản Python trên máy của mình và dễ dàng chuyển đổi giữa các phiên bản đó.

Bạn có thể cài đặt 2 phiên bản Python khác nhau không?

Với Bộ điều hướng, bạn có thể có các phiên bản Python khác nhau trên máy tính của mình và dễ dàng chuyển đổi giữa chúng bằng cách giữ chúng trong các môi trường khác nhau. Để sử dụng phiên bản Python khác với phiên bản bạn đang sử dụng, hãy thiết lập một môi trường mới. Bắt đầu điều hướng.

Tôi có thể cài đặt Python 2 và 3 cùng lúc với máy Mac không?

Sử dụng brew install python để cài đặt python3 trên mac, phiên bản hiện tại là Python 3. 6. 5. Nếu máy mac của bạn đã có python2, brew sẽ yêu cầu nâng cấp, điều này không sao cả.

Tôi có thể cài đặt Python 2 và 3 cùng lúc không?

bạn có thể cài đặt cả python 2 và python 3 trong máy của mình nhưng bạn không thể sử dụng cả hai trong cùng một trình chỉnh sửa mã đơn lẻ . Để sử dụng cả hai cùng lúc, bạn phải mở một IDE với python 2 và một IDE khác với python 3.

Chủ Đề