Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Mac

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước

macOS cài sẵn Python. Nhưng đó là Python 2.7 — phiên bản hiện đã deprecated (ngừng phát triển bởi cộng đồng Python).

Toàn bộ cộng đồng Python đã chuyển sang Python 3.x (phiên bản hiện tại lúc viết là 3.9). Python 4.x sẽ ra mắt sớm, nhưng hoàn toàn tương thích ngược.

Nếu bạn chạy Python từ Terminal macOS, thậm chí sẽ thấy cảnh báo:

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
CẢNH BÁO: Python 2.7 không được khuyến nghị. Phiên bản này nằm trong macOS để tương thích phần mềm cũ. Phiên bản macOS tương lai sẽ không bao gồm Python 2.7. Khuyến nghị chuyển sang dùng 'python3' trong Terminal.

Cho đến khi Apple đặt Python 3.x làm mặc định, bạn phải tự cài đặt.

Một lệnh duy nhất để chạy Python 3

Đối với một số bạn, lệnh này đã đủ. Bạn chạy Python 3 bằng lệnh này (có số 3 ở cuối).

python3

Nếu chỉ cần thế, chúc bạn ngày vui vẻ và coding vui vẻ.

Nhưng nếu muốn hệ thống quản lý phiên bản Python đúng chuẩn để theo dõi nhiều phiên bản — và kiểm soát chính xác phiên bản nào dùng — hướng dẫn này sẽ chỉ cách làm chính xác.

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
Để rõ: x trong Python 3.x là placeholder cho sub-version (point releases). Nghĩa là bất kỳ phiên bản nào của Python 3.

Cách cài Homebrew trên Mac

Trước tiên cài Homebrew — trình quản lý gói mạnh mẽ cho Mac.

Mở Terminal. Dùng Spotlight (command+space) gõ "terminal".

Bây giờ ở dòng lệnh, cài phiên bản Homebrew mới nhất bằng lệnh:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Terminal sẽ yêu cầu quyền Super User. Bạn nhập mật khẩu đăng nhập Mac và nhấn Enter.

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
Chụp màn hình Terminal đã tùy chỉnh nhiều của tôi. Terminal của bạn có thể khác.

Homebrew sẽ hỏi xác nhận cài đặt. Nhấn Enter để tiếp tục (hoặc phím khác nếu đổi ý).

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước

Cách cài pyenv để quản lý phiên bản Python

Bây giờ cài PyEnv. Thư viện này giúp chuyển đổi giữa các phiên bản Python (trường hợp cần chạy Python 2.x, và chờ đón Python 4.0).

Chạy lệnh:

brew install pyenv
Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
PyEnv đang cài đặt

Bây giờ bạn có thể cài phiên bản Python mới nhất.

Cách dùng pyenv cài Python hoặc cập nhật phiên bản Python

Chỉ cần chạy lệnh sau:

pyenv install 3.9.2

Lưu ý: bạn thay 3.9.2 bằng phiên bản Python mới nhất. Ví dụ khi Python 4.0.0 ra mắt, chạy:

pyenv install 4.0.0

Xử lý sự cố cài đặt pyenv

Nếu gặp lỗi "C compiler cannot create executables", cách đơn giản nhất là cài lại Xcode của Apple.

Xcode là công cụ của Apple bao gồm thư viện C và các công cụ Python dùng khi chạy trên macOS. Xcode dung lượng ~11 GB, nhưng bạn nên cập nhật. Có thể chạy khi ngủ.

Tải Xcode mới nhất tại đây. Tôi làm vậy sau khi nâng cấp lên macOS Big Sur, sau đó mọi lệnh hoạt động tốt. Chạy lại pyenv install 3.9.2 và nó sẽ chạy được.

Cách thiết lập PATH macOS cho pyenv (Bash hoặc ZSH)

Trước hết cập nhật đường dẫn Unix để PyEnv tương tác với hệ thống.

Đây là giải thích dài về cách PATH hoạt động trong macOS (và Unix), từ repo GitHub của pyenv.

Khi bạn chạy lệnh như python hoặc pip, hệ điều hành tìm qua danh sách thư mục để tìm file thực thi trùng tên. Danh sách này nằm trong biến môi trường PATH, các thư mục cách nhau bởi dấu hai chấm:

/usr/local/bin:/usr/bin:/bin

Thư mục trong PATH được tìm từ trái sang phải, nên file thực thi khớp ở thư mục đầu danh sách ưu tiên hơn thư mục cuối. Ví dụ: /usr/local/bin tìm trước, rồi /usr/bin, rồi /bin.

pyenv hoạt động bằng cách chèn thư mục shims lên đầu PATH:

$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin

Qua quá trình rehashing, pyenv duy trì shims trong thư mục đó khớp với mọi lệnh Python trên mọi phiên bản Python đã cài — python, pip, v.v.

Shims là file thực thi nhẹ chỉ chuyển lệnh của bạn cho pyenv.

Cách cập nhật .bash_profile trong Bash (mặc định macOS):

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile

Sau đó chạy:

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

Lưu ý: nếu thư mục pyenv_root không có /bin (chỉ có /shims), chạy lệnh này thay thế:

echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile

Thêm PyEnv Init vào terminal. Chạy lệnh nếu dùng Bash (mặc định macOS):

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Reset terminal:

reset

Cách thiết lập PATH macOS cho pyenv trong ZSH hoặc OhMyZSH

Nếu dùng ZSH (hoặc OhMyZSH) thay vì Bash mặc định, chỉnh file .zshrc:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

Sau đó chạy:

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc

Cách đặt phiên bản Python làm mặc định toàn cục (Bash hoặc ZSH)

Đặt phiên bản Python mới nhất làm global — nghĩa là mặc định khi chạy ứng dụng Python.

Chạy lệnh:

pyenv global 3.9.2

Lại thay 3.9.2 bằng phiên bản mới nhất.

Kiểm tra phiên bản global:

pyenv versions

Kết quả mong đợi:

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
Dấu * nghĩa là phiên bản đó hiện là mặc định toàn cục

Bước cuối: Đóng Terminal và khởi động lại

Sau khi khởi động lại Terminal, chạy lệnh python sẽ khởi chạy phiên bản Python mới thay vì phiên bản cũ.

Cài đặt Python 3 trên macOS với Homebrew – Hướng dẫn từng bước
Vui quá. Python 3.9.2 và không còn cảnh báo deprecated

Chúc mừng. Cảm ơn bạn đã đọc, và chúc coding vui vẻ!