Hướng dẫn is python installed on mac os by default? - python có được cài đặt mặc định trên mac os không?

Tôi đã nhúng ngón chân trở lại sự phát triển của Python khi tôi sẵn sàng đến Pycon chúng tôi. .

$ pip install todoist-python
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.

Vì vậy, tôi đã làm những gì bất kỳ ai trong chúng ta sẽ làm và tìm kiếm một hướng dẫn để cập nhật môi trường phát triển của tôi, chạy trên Mac (hệ điều hành MacOS, trước đây gọi là OS X). Thật ngạc nhiên, tôi chỉ tìm thấy một số ít các bài viết Stackoverflow, và họ chỉ cho tôi các giải pháp một phần. Đây là câu chuyện đầy đủ về cách thiết lập môi trường của bạn mà không phá vỡ bất cứ thứ gì được tích hợp trong hệ điều hành MacOS.

1. Cài đặt Pyenv

Moshe Zadka cảnh báo rằng việc làm điều này sai này có thể dẫn đến một ý tưởng không đáng tin cậy về việc Python đang chạy mà phụ thuộc quá chặt chẽ vào các bí danh tải vỏ. Tôi biết Moshe đã quen thuộc với Python, nhưng điều tôi không biết là anh ấy là tác giả của nhiều hướng dẫn Python cũng như một cuốn sách sắp tới về Python Development on MacOS. Ông đã giúp 40 đồng nghiệp phát triển Python một cách an toàn và nhất quán trên các hệ thống MacOS theo một nguyên tắc cốt lõi:

"Tiền đề cơ bản của tất cả sự phát triển của Python là không bao giờ sử dụng python hệ thống. Bạn không muốn mac os x 'python mặc định' & nbsp; là 'python3.' & Nbsp; bạn muốn không bao giờ quan tâm đến python mặc định."

Làm thế nào để chúng ta ngừng quan tâm đến mặc định? Moshe khuyên bạn nên sử dụng PyenV để quản lý môi trường Python (để lặn sâu hơn về việc định cấu hình PyenV, xem bài viết này). Công cụ này quản lý nhiều phiên bản của Python và được mô tả là "đơn giản, không phô trương và tuân theo truyền thống của Unix & NBSP; của các công cụ đơn mục đích làm tốt một việc."pyenv to manage Python environments (for a deeper dive on configuring pyenv, see this article). This tool manages multiple versions of Python and is described as "simple, unobtrusive, and follows the Unix tradition of single-purpose tools that do one thing well."

Mặc dù các tùy chọn cài đặt khác có sẵn, cách dễ nhất để bắt đầu là với Homebrew:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

2. Cài đặt Python

Bây giờ chúng ta hãy cài đặt phiên bản Python mới nhất (3.7.3 khi viết bài này):

$ pyenv install 3.7.3
python-build: use openssl 1.0 from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.3.tar.xz...
-> https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
Installing Python-3.7.3...
## further output not included ##

3. Đặt mặc định toàn cầu của bạn

Bây giờ Python 3 được cài đặt thông qua PyenV, chúng tôi muốn đặt nó làm phiên bản mặc định toàn cầu của chúng tôi cho môi trường PyenV:

$ pyenv global 3.7.3
# and verify it worked
$ pyenv version
3.7.3 (set by /Users/mbbroberg/.pyenv/version)

Sức mạnh của PyenV đến từ sự kiểm soát của nó đối với con đường của chúng tôi. Để nó hoạt động chính xác, chúng tôi cần thêm phần sau vào tệp cấu hình của chúng tôi (.zshrc cho tôi, có thể là .bash_profile cho bạn):.zshrc for me, possibly .bash_profile for you):

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

Sau lệnh đó, dotfile của chúng tôi (.zshrc cho zsh hoặc .bash_profile cho bash) nên bao gồm các dòng sau:.zshrc for zsh or .bash_profile for Bash) should include these lines:

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

Bây giờ chúng tôi biết chắc chắn rằng chúng tôi đang sử dụng Python 3.7.3 và PIP sẽ cập nhật cùng với nó mà không có bất kỳ bí danh thủ công nào giữa các phiên bản. Sử dụng khuyến nghị của Moshe để sử dụng Trình quản lý phiên bản (PYENV) cho phép chúng tôi dễ dàng chấp nhận nâng cấp trong tương lai mà không bị nhầm lẫn về việc Python chúng tôi đang chạy tại một thời điểm nhất định.

Thành công

Khi bạn cảm thấy thoải mái với quy trình công việc này, bạn có thể sử dụng PyenV to & nbsp; quản lý nhiều phiên bản Python. Cũng cần thiết, để quản lý phụ thuộc, sử dụng môi trường ảo. Tôi đề cập đến cách sử dụng thư viện VET tích hợp trong bài viết và Moshe khuyến nghị & nbsp; VirtualEnvWrapper để quản lý môi trường ảo.

Hiểu Python Runtimes

Bây giờ bạn đã sửa các phiên bản Python của mình, thật an toàn khi khám phá lý do tại sao vấn đề này gây nhầm lẫn rất nhiều người.

Phiên bản của Python được vận chuyển với macOS đã hết thời so với những gì Python khuyến nghị sử dụng để phát triển. Đôi khi suy ngẫm về Python Runtimes có thể là một thách thức hài hước, như được ghi nhận bởi XKCD.

Hướng dẫn is python installed on mac os by default? - python có được cài đặt mặc định trên mac os không?

Nhiều người dùng đã có hàng tá phiên dịch viên Python trên máy tính của họ, nhưng không biết làm thế nào để quản lý chúng một cách hiệu quả. Quá thường xuyên, mọi người chỉ cần tải xuống bản phát hành Python mới nhất, di chuyển nó vào đường dẫn của họ và gọi nó là một ngày (hoặc sử dụng Brew Install Python3, sẽ làm một cái gì đó tương tự). Điều này có thể gây ra phá vỡ dòng theo những cách bực bội có thể khó khắc phục sự cố.brew install python3, which would do something similar). This can cause breakages down the line in frustrating ways that can be difficult to troubleshoot.

Những gì không làm

Ý tưởng đầu tiên của tôi về cách biến Python 3 thành con trăn mặc định trên hệ thống của tôi là di chuyển phiên bản cũ và thêm phiên bản mới:

# what I thought would work
# first, I'll find my python binary
$ which python
/usr/bin/python
# next, I'll move it to an unused name
$ sudo mv /usr/bin/python /usr/bin/python2
# lastly, I'll move the new binary to the previous path
$ sudo mv $PATHTOBINARY/python3 /usr/bin/python

Mô hình theo sau/usr/bin/thường làm giữa các bản phát hành chính của Python, nhưng tôi nhanh chóng biết đó là bước đi sai lầm:/usr/bin/ usually does between major releases of Python, but I quickly learned it was the wrong move:

$ sudo mv /usr/bin/python /usr/bin/python2
mv: rename /usr/bin/python to /usr/bin/python2: Operation not permitted

Rất may, MacOS đã bảo vệ tôi khỏi việc phá vỡ thứ gì đó mà tôi không hiểu đầy đủ. Nghiên cứu sâu hơn chứng minh đây chính xác là những gì chúng ta không nên làm.

Một điều khác không nên thử

Bây giờ chúng ta biết những gì không nên làm, chúng ta hãy nhìn vào những gì chúng ta có thể làm. Có một vài tùy chọn khi chúng tôi nghĩ về các mẫu cài đặt phổ biến cho các ứng dụng trên macOS.

Sử dụng Python 3 làm mặc định macOS

Trang web của Python có trình cài đặt MacOS Python 3 mà chúng tôi có thể tải xuống và sử dụng. Nếu chúng tôi sử dụng cài đặt gói, điền Python3 sẽ có sẵn trong/usr/local/bin/.python3 fill will be available in /usr/local/bin/.

Bí quyết là điều bắt buộc vì nhị phân Python được lưu trữ trong/usr/bin/không thể thay đổi. Điều tuyệt vời về bí danh là nó đặc trưng cho vỏ dòng lệnh của chúng tôi. Vì tôi sử dụng ZSH theo mặc định, tôi đặt các phần sau vào tệp .zshrc:/usr/bin/ can't be changed. What's nice about an alias is that it's specific to our command-line shell. Since I use zsh by default, I put the following into the .zshrc file:

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.zshrc 

Nếu bạn đang sử dụng shell bash mặc định, bạn có thể nối cùng văn bản này vào .bashrc của bạn:.bashrc:

$ echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc 

Chiến lược này hoạt động, nhưng nó không lý tưởng để thực hiện các bản cập nhật trong tương lai cho Python. Điều đó có nghĩa là chúng tôi & nbsp; phải nhớ kiểm tra trang web và tải xuống các tệp mới vì Python không bao gồm cách cập nhật dòng lệnh.

Có Homebrew quản lý Python 3

Dự án Homebrew cung cấp một trình quản lý gói nguồn miễn phí và mở cho các macOS mà nhiều người dựa vào. Nó cung cấp cho người dùng Apple một sức mạnh tương tự như apt-get hoặc yum. Nếu bạn là người dùng homebrew, bạn có thể đã cài đặt Python. Để nhanh chóng kiểm tra, chạy:apt-get or yum. If you are a Homebrew user, you may already have Python installed. To quickly check, run:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

0

Nếu Python hiển thị dưới lệnh, nó đã được cài đặt. Nó là phiên bản nào? Hãy kiểm tra:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

1

Rất tốt! Các nhà bảo trì Homebrew đã cập nhật chai Python mặc định để chỉ ra bản phát hành mới nhất. Vì các nhà bảo trì homebrew đáng tin cậy hơn trong việc cập nhật bản phát hành so với hầu hết chúng ta, chúng ta có thể sử dụng phiên bản Python 3 của Homebrew với lệnh sau:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

2

Bây giờ chúng tôi muốn chỉ bí danh của chúng tôi (từ trên cao) đến bản sao của Python mà Homebrew quản lý:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

3

Để đảm bảo đường dẫn trên các điểm đến nơi Homebrew đã cài đặt Python trong môi trường của chúng tôi, chúng tôi có thể chạy Brew Info Python và tìm kiếm thông tin đường dẫn.brew info python and look for the path information.

Phương pháp này, sử dụng homebrew để quản lý môi trường Python của chúng tôi, là một nơi khởi đầu tốt, và nó có ý nghĩa với tôi vào thời điểm đó.

Nếu chúng ta vẫn cần Python 2 thì sao?

Có ý nghĩa đối với bất kỳ ai mới đến Python để bắt đầu với Python 3. Nhưng những người trong chúng ta vẫn cần Python 2, ví dụ, để đóng góp cho một dự án Python chỉ có sẵn trong Python 2, có thể tiếp tục sử dụng macOS mặc định Python có sẵn trong/usr/bin/python:/usr/bin/python:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

4

Homebrew rất tuyệt vời, nó thậm chí còn cung cấp một công thức khác cho Python 2:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

5

Bất cứ lúc nào, chúng tôi có thể xóa các bí danh khỏi tệp cấu hình shell của chúng tôi để quay lại bằng cách sử dụng bản sao mặc định của Python trên hệ thống.

Đừng quên cập nhật PIP lên PIP3!

Lệnh PIP là trình quản lý gói mặc định dành riêng cho các gói Python. Mặc dù chúng tôi đã thay đổi lệnh Python mặc định của mình thành phiên bản 3, chúng tôi phải riêng biệt lệnh PIP của chúng tôi một cách riêng biệt nếu nó ở phiên bản trước. Đầu tiên, chúng ta cần kiểm tra phiên bản nào chúng ta đang sử dụng:pip command is the default package manager specifically for Python packages. Although we changed our default Python command to be version 3, we have to alias our pip command separately if it's on the previous version. First, we need to check what version we're on:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

6

Để đảm bảo chúng tôi cài đặt các gói tương thích với phiên bản Python mới của chúng tôi, chúng tôi sẽ sử dụng một bí danh khác để trỏ đến phiên bản PIP tương thích. Vì chúng tôi đang sử dụng Homebrew làm Trình quản lý gói của chúng tôi trong tình huống này, chúng tôi biết rằng nó đã cài đặt PIP3 khi chúng tôi cài đặt Python 3. Đường dẫn mặc định phải giống như Python 3, nhưng chúng tôi có thể xác nhận điều này bằng cách yêu cầu shell tìm thấy nó:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

7

Bây giờ chúng tôi đã biết vị trí, chúng tôi sẽ thêm nó vào tệp cấu hình shell của chúng tôi, như chúng tôi đã làm trước đây:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

8

Cuối cùng, chúng tôi có thể xác nhận rằng việc chạy PIP Point to PIP3 bằng cách mở vỏ mới hoặc bằng cách đặt lại vỏ hiện tại của chúng tôi và xem những gì chúng tôi chỉ đến:

$ brew install pyenv
?  /usr/local/Cellar/pyenv/1.2.10: 634 files, 2.4MB

9

Chúng tôi có thể tránh sử dụng & nbsp; homebrew để cập nhật PIP, nhưng điều đó đòi hỏi một hướng dẫn dài hơn nhiều từ tài liệu Python.

Làm điều đó ngay từ đầu

Nếu bạn mới bắt đầu với sự phát triển của Python trên macOS, hãy thực hiện các cấu hình cần thiết để đảm bảo bạn đang sử dụng đúng phiên bản Python ngay từ đầu. Cài đặt Python 3, có hoặc không có homebrew, và sử dụng bí danh sẽ cho phép bạn bắt đầu mã hóa, nhưng đó không phải là một chiến lược tốt trong thời gian dài. Sử dụng pyenv làm giải pháp quản lý phiên bản đơn giản & nbsp; để giúp bạn có một khởi đầu tốt.


Bài viết này ban đầu được xuất bản vào tháng 5 năm 2019 và đã được biên tập viên cập nhật.

Python có được cài đặt theo mặc định không?

Nhiều hệ điều hành tương thích UNIX, chẳng hạn như MacOS và một số phân phối Linux, đã được cài đặt Python theo mặc định;Nó được bao gồm trong cài đặt cơ sở.; it's included in the base installation.

Tại sao macOS đi kèm với Python?

Vào thời điểm đó, Apple cho biết Python 2.7 đã được đưa vào MacOS để tương thích với phần mềm kế thừa."Nếu phần mềm của bạn phụ thuộc vào các ngôn ngữ kịch bản, bạn khuyên bạn nên gói thời gian chạy trong ứng dụng", Apple nói.for compatibility with legacy software. "If your software depends on scripting languages, it's recommended that you bundle the runtime within the app," said Apple.

Python 3 có được cài đặt trên Mac theo mặc định không?

Trong khi các macOS xuất xưởng với Python 2 theo mặc định, bạn có thể cài đặt Set Python 3 làm phiên bản Python mặc định trên máy Mac của bạn.Đầu tiên, bạn cài đặt Python 3 với homebrew.Để biến phiên bản mới này là mặc định, bạn có thể thêm dòng sau vào ~/.you can install set Python 3 as the default Python version on your Mac. First, you install Python 3 with Homebrew. To make this new version your default, you can add the following line to your ~/.