Computer >> Máy Tính >  >> Hệ thống >> MAC

Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew

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:

Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
CẢNH BÁO:Không nên sử dụng Python 2.7. Phiên bản này được bao gồm trong macOS để tương thích với phần mềm cũ. Các phiên bản tương lai của macOS sẽ không bao gồm Python 2.7. Thay vào đó, bạn nên chuyển sang sử dụng 'python3' từ bên trong Terminal.

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 Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
Nhân tiện, nếu bạn tự hỏi tại sao tôi tiếp tục đề cập đến Python 3.x - x là phiên bản phụ cho các phiên bản con (hoặc phiên bản điểm như các nhà phát triển gọi chúng.) Điều này có nghĩa là bất kỳ phiên bản nào của Python 3.

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.

Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
Ảnh chụp màn hình thiết bị đầu cuối được tùy chỉnh nhiều của tôi. Thiết bị đầu cuối của bạn có thể trông khác với thiết bị này.

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 Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew

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
Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
Cài đặt 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ặc pip , 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 trong PATH đượ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:

Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
Dấu * có nghĩa là phiên bản đó hiện là mặc định chung

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ũ.

Cách cài đặt Python 3 trên Mac - Hướng dẫn cập nhật cài đặt Brew
Đúng vậy. Python 3.9.2 và không có cảnh báo không dùng nữa

Xin chúc mừng. Cảm ơn bạn đã đọc cái này, chúc bạn viết mã vui vẻ.