MacOS được cài đặt sẵn Python. Nhưng đó là Phiên bản Python 2.7, hiện không được dùng nữa (đã bị cộng đồng nhà phát triển Python từ bỏ).
Toàn bộ cộng đồng Python hiện đã chuyển sang sử dụng Python 3.x (phiên bản hiện tại khi viết là 3.9). Và Python 4.x sẽ sớm ra mắt, nhưng nó sẽ hoàn toàn tương thích ngược.
Nếu bạn cố gắng chạy Python từ thiết bị đầu cuối MacOS của mình, bạn thậm chí sẽ thấy cảnh báo này:
Cho đến khi Apple quyết định đặt Python 3.x, làm mặc định, bạn sẽ phải tự cài đặt nó.
Một lệnh duy nhất để chạy Python 3
Đối với một số bạn đọc này, lệnh này có thể là đủ. Bạn có thể chạy Python 3 bằng lệnh này (với 3 ở cuối).
python3
Nếu đó là tất cả những gì bạn đến, đừng lo lắng. Chúc một ngày vui vẻ và viết mã vui vẻ.
Nhưng nếu bạn muốn có một hệ thống kiểm soát phiên bản Python phù hợp để theo dõi các phiên bản khác nhau - và có quyền kiểm soát chi tiết đối với phiên bản bạn sử dụng - hướng dẫn này sẽ chỉ cho bạn chính xác cách thực hiện điều này.
Cách cài đặt Homebrew trên Mac
Trước tiên, bạn cần cài đặt Homebrew, một trình quản lý gói mạnh mẽ dành cho Mac.
Mở thiết bị đầu cuối của bạn. Bạn có thể thực hiện việc này bằng cách sử dụng đèn nền MacOS (lệnh + dấu cách) và nhập "terminal".
Bây giờ bạn đang ở trong một dòng lệnh, bạn có thể cài đặt phiên bản Homebrew mới nhất bằng cách chạy lệnh sau:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Thiết bị đầu cuối của bạn sẽ yêu cầu quyền truy cập cấp Người dùng Siêu. Bạn sẽ cần phải nhập mật khẩu của mình để chạy lệnh này. Đây chính là mật khẩu bạn nhập khi đăng nhập vào máy Mac. Nhập nó và nhấn enter.
Homebrew sẽ yêu cầu bạn xác nhận bạn muốn cài đặt phần sau. Bạn phải nhấn enter để tiếp tục. (Hoặc nhấn bất kỳ phím nào khác nếu bạn bị lạnh chân.)
Cách cài đặt pyenv để quản lý các phiên bản Python của bạn
Bây giờ chúng ta hãy dành một chút thời gian để cài đặt PyEnv. Thư viện này sẽ giúp bạn chuyển đổi giữa các phiên bản Python khác nhau (trong trường hợp bạn cần chạy Python 2.x vì lý do nào đó và với dự đoán Python 4.0 sắp ra mắt).
Chạy lệnh này:
brew install pyenv
Bây giờ bạn có thể cài đặt phiên bản Python mới nhất.
Cách sử dụng pyenv để cài đặt Python hoặc cập nhật phiên bản Python của bạn
Bây giờ bạn chỉ cần chạy lệnh sau:
pyenv install 3.9.2
Lưu ý rằng bạn có thể thay thế 3.9.2 cho bất kỳ phiên bản Python nào mới nhất. Ví dụ:sau khi Python 4.0.0 ra mắt, bạn có thể chạy điều này:
pyenv install 4.0.0
Khắc phục sự cố Cài đặt pyenv
Nếu bạn gặp lỗi "Trình biên dịch C không thể tạo tệp thực thi" thì cách đơn giản nhất để giải quyết vấn đề này là cài đặt lại Xcode của Apple.
Xcode là một công cụ do Apple tạo ra bao gồm tất cả các thư viện C và các công cụ khác mà Python sử dụng khi nó chạy trên MacOS. Xcode là một con số khổng lồ 11 gigabyte, nhưng bạn sẽ muốn được cập nhật. Bạn có thể muốn chạy cái này khi đang ngủ.
Bạn có thể tải phiên bản Xcode mới nhất của Apple tại đây. Tôi phải thực hiện việc này sau khi nâng cấp lên MacOS Big Sur, nhưng khi tôi đã làm vậy, tất cả các lệnh sau đều hoạt động tốt. Chỉ cần chạy lại pyenv install 3.9.2
ở trên và bây giờ nó sẽ hoạt động.
Cách thiết lập MacOS PATH của bạn cho pyenv (Bash hoặc ZSH)
Trước tiên, bạn cần cập nhật đường dẫn Unix của mình để mở đường cho PyEnv có thể tương tác với hệ thống của bạn.
Đây là lời giải thích dài về cách PATH hoạt động trong MacOS (và Unix), trực tiếp từ repo pyenv GitHub.
Khi bạn chạy một lệnh nhưpython
hoặcpip
, hệ điều hành của bạn sẽ tìm kiếm trong danh sách các thư mục để tìm một tệp thực thi có tên đó. Danh sách các thư mục này nằm trong một biến môi trường có tên làPATH
, với mỗi thư mục trong danh sách được phân tách bằng dấu hai chấm:
/usr/local/bin:/usr/bin:/bin
Các thư mục trongPATH
được tìm kiếm từ trái sang phải, vì vậy một tệp thực thi phù hợp trong một thư mục ở đầu danh sách sẽ được ưu tiên hơn một tệp khác ở cuối danh sách. Trong ví dụ này,/usr/local/bin
thư mục sẽ được tìm kiếm đầu tiên, sau đó đến/usr/bin
, rồi đến/bin
.
Và đây là lời giải thích của họ về Shim là gì. Tôi đang trích dẫn lại chúng một lần nữa vì bản thân tôi thực sự không thể giải thích rõ hơn điều này.
pyenv hoạt động bằng cách chèn một thư mục miếng chêm ở phía trước PATH
của bạn :
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Thông qua một quy trình có tên là rehashing , pyenv duy trì các miếng chêm trong thư mục đó để khớp với mọi lệnh Python trên mọi phiên bản Python đã cài đặt—python
,pip
, v.v..
Shims là các tệp thực thi nhẹ chỉ cần chuyển lệnh của bạn đến pyenv.
Đây là cách cập nhật .bash_profile
của bạn trong Bash (được cài đặt trong MacOS theo mặc định):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
Sau đó chạy:
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Lưu ý: nếu bạn không có /bin
thư mục trong pyenv_root
của bạn thư mục (bạn có thể chỉ có một /shims
thư mục) thay vào đó, bạn có thể cần chạy phiên bản này của lệnh:
`echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bash_profile`
Sau đó, bạn muốn thêm PyEnv Init vào thiết bị đầu cuối của mình. Chạy lệnh này nếu bạn đang sử dụng Bash (một lần nữa, đây là lệnh mặc định với MacOS):
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
Bây giờ hãy đặt lại thiết bị đầu cuối của bạn bằng cách chạy lệnh sau:
reset
Cách thiết lập MacOS PATH của bạn cho pyenv trong ZSH hoặc OhMyZSH
Nếu thay vì sử dụng Bash mặc định của Mac, bạn đang sử dụng ZSH (hoặc OhMyZSH) như tôi, bạn sẽ muốn chỉnh sửa .zshrc
tệp thay thế:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
Sau đó chạy cái nà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 thành mặc định chung (Bash hoặc ZSH)
Bạn có thể đặt phiên bản Python mới nhất là toàn cầu, có nghĩa là nó sẽ là phiên bản mặc định của Python mà MacOS sử dụng khi bạn chạy các ứng dụng Python.
Chạy lệnh này:
pyenv global 3.9.2
Một lần nữa, bạn có thể thay thế 3.9.2 bằng bất kỳ phiên bản mới nhất nào.
Bây giờ bạn có thể xác minh rằng điều này đã hoạt động bằng cách kiểm tra phiên bản toàn cầu của Python:
pyenv versions
Bạn sẽ thấy kết quả này:
Bước cuối cùng:Đóng thiết bị đầu cuối của bạn và khởi động lại
Khi bạn đã khởi động lại thiết bị đầu cuối của mình, bạn chạy python
và bạn sẽ khởi chạy phiên bản Python mới thay vì phiên bản cũ.
Xin chúc mừng. Cảm ơn bạn đã đọc cái này, chúc bạn viết mã vui vẻ.