Quản lý nhiều phiên bản python mac

Mac đi kèm với Python 2. 7 được cài đặt sẵn, nhưng một số thư viện AI mới hơn thích bạn sử dụng Python 3 trở lên. Đây là cách định cấu hình máy Mac của bạn để bạn có thể dễ dàng cài đặt bất kỳ phiên bản Python nào. Nếu bạn là nhà phát triển Ruby, có thể bạn sẽ hiểu sức mạnh đằng sau Trình quản lý phiên bản Ruby hoặc rbenv. Điều này khá giống với Python

Bước 1 - Cài đặt Homebrew

Vì chúng ta sẽ sử dụng trình quản lý Homebrew để cài đặt trình quản lý Python, đây là hướng dẫn nhanh về cách cài đặt Homebrew cho người dùng Mac

brew update
Bước 2 - Cài đặt
brew install pyenv
1

brew install pyenv
1 là trình quản lý gói python

brew install pyenv
Bước 3 - Định cấu hình môi trường máy Mac của bạn

Sau đó, bạn sẽ muốn định cấu hình các biến môi trường của mình và để PyEnv quản lý các gói của mình

Trước khi bạn tiếp tục đọc bài viết này, hãy đảm bảo rằng Homebrew đã được cài đặt trên máy Mac của bạn. Có hướng dẫn cài đặt trên blog của tôi digitaldocblog. com hoặc bạn chỉ cần truy cập trang web Homebrew và làm theo hướng dẫn tại đó

Nhưng trước hết tôi muốn mô tả tình hình ban đầu của tôi. Tôi nghĩ rằng một số người dùng Mac đã tự cài đặt python trên máy mac của họ bằng cách này hay cách khác và ngạc nhiên khi kiểm tra phiên bản hiện tại bằng

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
6 hoặc khi kiểm tra tệp nhị phân python nào hiện đang được thực thi bằng lệnh
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
7. Tôi đã cài đặt python 2 và 3 với Homebrew và sau khi thực hiện các lệnh này, tôi đã rất ngạc nhiên và thấy rằng trên hệ thống của mình, các phiên bản python khác nhau đang chạy hơn tôi mong đợi

Tôi thấy rằng phải có vấn đề khi bạn cài đặt các phiên bản Python khác nhau trên máy Mac và tôi đang tìm một cách dễ dàng để chuyển đổi giữa các phiên bản này. Việc chuyển đổi giữa các phiên bản là cần thiết vì khi bạn là nhà phát triển, bạn có thể cần chạy mã của mình trên một phiên bản nhất định. Vì vậy, thật dễ dàng để cài đặt các phiên bản python khác nhau trên máy Mac của bạn và chuyển đổi giữa chúng khi cần. Tất nhiên có một số cách để giải quyết vấn đề này. Tôi quyết định sử dụng trình quản lý phiên bản Pyenv. Nhưng nhiều hơn về điều này sau. Trước hết, trở lại tình huống ban đầu của tôi

Tình hình ban đầu

Mọi chuyện bắt đầu với thông báo lỗi Homebrew sau khi tôi cập nhật lên Mac OS Big Sur [Mac OS 11]. Tôi đã cài đặt python 2 và 3 trên hệ thống của mình với Homebrew. Tôi đã thực hiện các cài đặt này dưới Catalina. Lệnh

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
8 đưa cho tôi thông báo lỗi nói rằng tôi đã cài đặt thùng mà không có công thức và tôi nên gỡ cài đặt python@2 vì đây là phiên bản python đã lỗi thời và không còn được hỗ trợ. Gì ?

Lần kiểm tra đầu tiên của tôi là trên thư mục

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 vì tôi muốn biết liệu các tệp nhị phân python đã được liên kết chính xác từ Homebrew hay chưa

________số 8

Đối với tôi, dường như chỉ có python 2 được Homebrew cài đặt và tất cả các liên kết nhị phân đều đề cập đến thư mục python@2 trong Homebrew Cellar. Lần kiểm tra thứ hai của tôi là trên thư mục Homebrew Cellar vì tôi muốn biết liệu có sẵn Công thức của hai phiên bản python hay không

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8

Điều này đã làm rõ. Python 2 được cài đặt và liên kết đúng cách trong Cellar [nhưng đã lỗi thời] nhưng rõ ràng Python 3 không được cài đặt đúng cách [không có liên kết nhị phân nào trong

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9]. Tôi hiểu rằng đây phải là thông báo từ thông báo lỗi Homebrews. Nhưng rồi tôi tò mò không biết phần kiểm tra phiên bản sẽ cho tôi biết điều gì

brew install pyenv
1

Lệnh

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
7 đề cập đến phiên bản python 2 được cài đặt với Homebrew trong
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 nhưng trong
brew install pyenv
13 là cái quái gì vậy?

Tôi đã tìm hiểu một chút và cuối cùng tôi phát hiện ra rằng đó phải là phiên bản python đi kèm với Mac OS. Vì vậy, lệnh

brew install pyenv
14 đề cập đến phiên bản python 3 được cài đặt sẵn trên Mac trong
brew install pyenv
13. Và tôi đã học được rằng trong mọi trường hợp phải tránh xóa cái gọi là Phiên bản Python hệ thống này khỏi hệ thống. Apple cài đặt trong
brew install pyenv
13 trong khi Homebrew cài đặt trong
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 và
brew install pyenv
18. Vì vậy, hãy tránh xa mọi thứ được cài đặt trong
brew install pyenv
13 liên quan đến Python

Sau đó, tôi muốn hiểu những gì Apple đã cài đặt trong

brew install pyenv
13

brew install pyenv
2

Apple rõ ràng đã cài đặt Python 2 và Python 3. Nhưng lệnh

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
7 cho tôi biết rõ ràng [xem ở trên] rằng phiên bản Python 2 của Homebrew từ
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 hiện đang hoạt động theo một cách nào đó, trong khi lệnh
brew install pyenv
14 dường như đề cập đến phiên bản System Python 3 trong
brew install pyenv
13

Làm thế nào để tôi dọn dẹp mớ hỗn độn?

Tôi quyết định gỡ cài đặt phiên bản Homebrew python 2 bình thường bằng lệnh

brew install pyenv
25. Và tôi cũng đã xóa thủ công thư mục
brew install pyenv
26. Sau đó, tôi đã kiểm tra lại các phiên bản python

brew install pyenv
9

tôi hài lòng với kết quả. Cả hai System Pythons trong

brew install pyenv
13 hiện đang hoạt động trên hệ thống của tôi và đây chính xác là những gì tôi muốn đạt được khi dọn dẹp. Bây giờ tôi có thể nghĩ về cách tôi muốn quản lý các phiên bản python khác trên hệ thống của mình. Và đây chính là nơi tôi trở lại với Pyenv

Quản lý Python trên Mac OS với Pyenv

Đầu tiên tôi cài đặt Pyenv với Homebrew

brew install pyenv
1

Sau đó, tôi tạo một tệp

brew install pyenv
28 trong thư mục chính của mình và thêm lệnh
brew install pyenv
29 vào cuối tệp cấu hình
brew install pyenv
28 để bật miếng chêm pyenv trong biến
brew install pyenv
91 của tôi

brew install pyenv
6

Điều rất quan trọng là đảm bảo rằng lệnh

brew install pyenv
92 được đặt ở cuối cấu hình trình bao vì nó thao tác biến môi trường
brew install pyenv
91 trong quá trình khởi tạo trình bao

Sau đó, tôi đóng thiết bị đầu cuối và khởi động lại lần nữa

Với lệnh

brew install pyenv
94, bạn có thể kiểm tra các phiên bản python hiện có trên máy Mac của mình. Sau khi dọn dẹp, phiên bản duy nhất trên máy Mac của tôi là System Python và được đánh dấu bằng
brew install pyenv
95

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
1

Khi bạn kiểm tra phiên bản của Hệ thống Python hiện tại bằng lệnh

brew install pyenv
96
brew install pyenv
97 và
brew install pyenv
98
brew install pyenv
97, bạn sẽ thấy rằng tôi vẫn chạy Hệ thống Python Phiên bản 2. 7. 16 và 3. 8. 2. Đó là những gì tôi mong đợi

Với Pyenv, bạn cũng có thể cài đặt Python bằng lệnh

brew install pyenv
10. Với lệnh
brew install pyenv
11, bạn có thể liệt kê tất cả các phiên bản Python có sẵn có thể cài đặt. Đây sẽ là một danh sách dài nhưng bạn có thể đưa nó vào grep để hạn chế danh sách được hiển thị một chút. Ở đây tôi giới hạn danh sách cho tất cả Python 3 có sẵn. 8. * và 3. 9. * phiên bản

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
8

Sau đó, tôi cài đặt Python 3. 9. 1 là phiên bản Python mới nhất hiện có tại thời điểm viết bài này

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9

Sau đó, tôi kiểm tra lại những con trăn hiện có với

brew install pyenv
94 và tôi có thể thấy rằng 3. 9. 1 phiên bản đã được thêm vào. Bây giờ đến lợi thế thực sự của pyenv. Với lệnh
brew install pyenv
13 tôi đặt 3. 9. 1 phiên bản hiện đang hoạt động

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
0

Tôi kiểm tra lại nếu python mặc định hiện được đặt thành 3. 9. 1 sử dụng lệnh

brew install pyenv
96
brew install pyenv
97. Đầu ra trong thiết bị đầu cuối hiển thị phiên bản đang hoạt động được đánh dấu sao. Đây là Python3. 9. 1 và chính xác những gì tôi mong đợi. Sau đó, tôi đăng nhập vào trình thông dịch lệnh python tương tác và điều này cũng xác nhận rằng hiện tại nó là 3. 9. 1 phiên bản

Vì vậy, tôi quản lý Python của mình trên Mac OS Big Sur kể từ bây giờ với Pyenv

Làm cho Pyenv hoạt động hoàn hảo với Homebrew

Khi tôi cài đặt xong Pyenv, mọi thứ đều hoạt động tốt cho đến khi tôi thử sử dụng lệnh brew doctor để kiểm tra cài đặt Homebrew của mình

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
1

Tôi googled một chút và tôi phát hiện ra điều này. Bài viết rất thú vị về cài đặt

brew install pyenv
91 mà tôi đã thực thi trong tệp
brew install pyenv
28 của mình khi cài đặt Pyenv [xem bên trên]

Sau đó, tôi đã kiểm tra các biến môi trường của mình bằng lệnh

brew install pyenv
18

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
2

Vấn đề dường như là

brew install pyenv
91 được đặt bởi mục nhập
brew install pyenv
60 trong tệp
brew install pyenv
28 của tôi

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
3

Mục nhập này dẫn đến việc

brew install pyenv
62 được đặt ở đầu biến
brew install pyenv
91 khi thực thi
brew install pyenv
64

Khi bạn xem toàn bộ

brew install pyenv
91, bạn sẽ thấy rằng lệnh
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
8 có thể được thực thi mà không cần chỉ định
brew install pyenv
67 vì thông số kỹ thuật đường dẫn bắt buộc
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 cũng có sẵn nhưng ngược lại. Vì vậy, đầu tiên brew đọc đường dẫn
brew install pyenv
62 và chỉ sau đó là đường dẫn
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
9 và chính xác trong
brew install pyenv
62 là các tệp
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
12 được sử dụng từ Pyenv. Vì vậy, có vẻ như brew có vấn đề với các tệp cấu hình này

Vì các tệp cấu hình này dường như gây nhầm lẫn cho brew theo một cách nào đó, tốt nhất là nếu brew bằng cách nào đó có thể bỏ qua các tệp này. Điều này có thể thực hiện được nếu chúng ta xác định một biến môi trường

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
13. Chúng ta có thể định nghĩa
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
14 là bí danh và sau đó hướng dẫn
brew install pyenv
64 rằng trong trường hợp
patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
14 được gọi là một
brew install pyenv
91 cụ thể thì áp dụng cụ thể là
brew install pyenv
91 không có thư mục miếng chêm. Đối với điều này, chúng ta phải điều chỉnh
brew install pyenv
28 như sau

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
4

Sau khi khởi động lại thiết bị đầu cuối, tôi có thể chạy lệnh

patrick@PatrickMBNeu ~ % ls -l /usr/local/Cellar/python*
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@2
drwxr-xr-x  3 patrick  staff  96 26 Feb 18:46 python@3.8
8 mà không có thông báo lỗi này. Vấn đề đã được giải quyết

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

Bạn có thể có 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.

Chủ Đề