在 macOS 下升级 Python 几种常见的方法

在 macOS 下升级 Python 有几种常见的方法,具体取决于你最初是如何安装 Python 的。了解你的安装方式是关键。

首先,你需要知道你当前 Python 版本以及它的安装路径。

  1. 检查 Python 版本:
python --version # 可能指向 Python 2.x
python3 --version # 通常指向 Python 3.x
  1. 检查 Python 路径:
which python
which python3

根据你 which 命令的输出,我们可以推断出安装方式。常见的安装方式有:

  • macOS 系统自带 Python: 通常在 /usr/bin/python不建议直接修改或升级系统自带的 Python,因为它可能被 macOS 的内部工具所依赖,直接操作可能导致系统不稳定。
  • Homebrew 安装: 通常在 /usr/local/bin/python3/opt/homebrew/bin/python3 (M1/M2 Mac)。这是 Mac 用户最推荐和最方便的管理 Python 的方式。
  • pyenv 安装: 通常在 ~/.pyenv/shims/python。pyenv 是一个强大的 Python 版本管理工具。
  • Anaconda/Miniconda 安装: 通常在 ~/anaconda3/bin/python~/miniconda3/bin/python。Anaconda 是一个全面的数据科学平台。
  • 直接从 Python 官网下载安装包 (pkg): 通常安装到 /Library/Frameworks/Python.framework

下面针对不同的安装方式讲解如何升级:


最推荐的方式:使用 Homebrew (如果还没有安装,强烈建议安装)

Homebrew 是 macOS 上最流行的包管理器,也是管理 Python 版本的最佳方式之一。

1. 安装 Homebrew (如果尚未安装):
打开终端并运行:

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

按照屏幕上的指示完成安装。

2. 升级 Homebrew 本身:

brew update

3. 升级 Python (如果已通过 Homebrew 安装):
如果你的 Python 3 是通过 Homebrew 安装的,只需运行:

brew upgrade python

这会把 Homebrew 版的 Python 升级到最新稳定版本。

4. 如果你尚未通过 Homebrew 安装 Python 3,或者需要安装特定版本:

brew install python # 这会安装最新稳定版 Python 3

5. 确保你的 PATH 环境变量正确设置:
Homebrew 会自动将 /usr/local/bin (或 M1/M2 Mac 上的 /opt/homebrew/bin) 添加到你的 PATH 中,确保 Homebrew 安装的 Python 优先于系统自带的。在你的 ~/.zshrc (macOS Catalina及更高版本默认) 或 ~/.bash_profile (旧版本) 中确认有类似以下的行:

export PATH="/usr/local/opt/python/libexec/bin:$PATH" # 对于 Intel Mac
export PATH="/opt/homebrew/opt/python/libexec/bin:$PATH" # 对于 M1/M2 Mac

或者更通用的,确保 Homebrew 的 bin 目录在 PATH 前面:

export PATH="/opt/homebrew/bin:$PATH" # For M1/M2 Mac
export PATH="/usr/local/bin:$PATH" # For Intel Mac

更新后,运行 source ~/.zshrcsource ~/.bash_profile 使其生效。

6. 验证升级:

python3 --version
which python3

现在 python3 应该指向 Homebrew 安装的最新版本。


使用 pyenv (推荐用于管理多个 Python 版本)

如果你需要在同一台机器上管理多个 Python 版本(例如,项目 A 需要 Python 3.8,项目 B 需要 Python 3.10),pyenv 是一个绝佳的选择。

1. 安装 pyenv (如果尚未安装):

brew install pyenv

然后,你需要将 pyenv 初始化添加到你的 shell 配置文件。编辑你的 ~/.zshrc (或 ~/.bash_profile),添加以下行:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

保存文件并运行 source ~/.zshrc

2. 列出可用的 Python 版本:

pyenv install --list

3. 安装新的 Python 版本 (即升级):
选择你想要安装的最新版本,例如 Python 3.11.x:

pyenv install 3.11.x # 将 x 替换为具体的最新补丁版本,如 3.11.4

4. 设置全局或局部 Python 版本:

  • 全局设置 (对所有 shell 会话生效):
pyenv global 3.11.x
  • 局部设置 (仅对当前目录及其子目录生效):
    进入你的项目目录,然后运行:
pyenv local 3.11.x

5. 验证升级:

python --version
python3 --version
which python
which python3

pyenv 会通过修改 PATH 来“垫片” (shim) 你选择的 Python 版本。


使用 Anaconda/Miniconda

如果你使用 Anaconda 或 Miniconda 管理 Python 环境,升级方式如下:

1. 更新 conda 本身:

conda update conda

2. 升级基础环境中的 Python (不推荐,最好创建新环境):
如果你想直接升级 base 环境中的 Python,可以尝试:

conda update python

但更推荐的做法是创建新的环境来管理不同的 Python 版本。

3. 创建一个新的环境并指定 Python 版本:

conda create -n my_new_env python=3.11
conda activate my_new_env
python --version

这样你就可以在不同的环境中切换,每个环境有自己独立的 Python 版本和库。


从 Python 官网安装包 (pkg) 升级

如果你最初是从 Python 官网下载的 .pkg 安装包,你可以:

  1. 访问 Python 官网: www.python.org/downloads/macos/
  2. 下载最新版本的 macOS 安装程序。
  3. 运行下载的 .pkg 文件。 它会引导你完成安装,并通常会安装在 /Library/Frameworks/Python.framework 下的一个新版本目录中,并更新你的系统 PATH,使其指向最新的安装。

注意: 这种方法可能会安装多个 Python 版本在你的系统上,并且可能需要手动管理 PATH,不如 Homebrew 或 pyenv 灵活。


总结和最佳实践:

  1. 永远不要直接修改 macOS 系统自带的 Python (/usr/bin/python)。
  2. 对于大多数 Mac 用户,使用 Homebrew 是最简单、最推荐的方式来安装和升级 Python 3。
  3. 如果你需要管理多个 Python 版本用于不同的项目,使用 pyenv 是理想的选择。
  4. 如果你进行数据科学或机器学习工作,并且依赖大量的科学计算库,Anaconda/Miniconda 是一个强大的解决方案。
  5. 在升级 Python 后,记得重新安装或更新你的项目依赖 (pip install -r requirements.txt),因为 Python 版本的变化可能会影响库的兼容性。
  6. 始终在一个新的终端会话或使用 source 命令来确保 PATH 环境变量的更改生效,然后再检查 Python 版本。

选择最适合你工作流程的方法。如果你是新手,Homebrew 是一个很好的开始。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95557.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十五天

三、Shell脚本编程 Shell脚本语言的运算 算数运算 shell支持算术运算,但只支持整数,不支持小数 Bash中的算术运算 -- 加法运算 -- - 减法运算 -- * 乘法运算 -- / 除法运算 -- % 取模,即取余数 -- ** 乘方 ​ #乘法符号在有些场景需要转…

SpringAI系列---【多租户记忆和淘汰策略】

1.多租户工作原理 2.引入jdbc的pom spring官网链接:https://docs.spring.io/spring-ai/reference/api/chat-memory.html,推荐使用官网的jdbc。 阿里巴巴ai链接:https://github.com/alibaba/spring-ai-alibaba/tree/main/community/memories j…

Linux gzip 命令详解:从基础到高级用法

Linux gzip 命令详解:从基础到高级用法 在 Linux 系统中,文件压缩与解压缩是日常运维和文件管理的常见操作。gzip(GNU Zip)作为一款经典的压缩工具,凭借其高效的压缩算法和简洁的使用方式,成为 Linux 用户处…

Redis有什么优点和缺点?

优点:极致性能: 基于内存操作和高效的单线程 I/O 模型,读写速度极快。数据结构丰富: 支持多种数据结构,如 String、Hash、List、Set、ZSet、Stream、Geo 等,编程模型灵活。持久化与高可用: 提供…

NestJS 3 分钟搭好 MySQL + MongoDB,CRUD 复制粘贴直接运行

基于上一篇内容《为什么现代 Node 后端都选 NestJS TypeScript?这组合真香了》,这篇文章继续写数据库的连接。 所以今天把MySQL、MongoDB全接上,做个小实例。朋友们项目里用什么数据库可以视情况而定。 这里的功能分别为: MySQ…

用了企业微信 AI 半年,这 5 个功能让我彻底告别重复劳动

每天上班不是在整理会议纪要,就是在翻聊天记录找文件,写文档还要自己抠数据…… 这些重复劳动是不是也在消耗你的时间?作为用了企业微信 AI 功能半年的 “老用户”,我必须说:企业微信 AI 的这 5 个功能,真的…

从入门到高手,Linux就应该这样学【好书推荐】

从入门到高手,请这样学Linux 一、Linux基础与终端操作 1.1 Linux简介 Linux 是一种开源的类 Unix 操作系统,以其稳定性、安全性和高效性被广泛应用于服务器、嵌入式系统及开发环境中。掌握基本命令和操作技巧是 Linux 学习的关键。 1.2 终端基础 打开…

【数据可视化-104】安徽省2025年上半年GDP数据可视化分析:用Python和Pyecharts打造炫酷大屏

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…

组件库UI自动化

一、背景 背景: 组件库全局改动场景多,组件之间耦合场景多–时常需要全场景回归组件库demo有200多个,手动全局回归耗时耗力细微偏差纯视觉无法辨别 可行性分析: 组件库功能占比 L1(视觉层):图片…

面试题:JVM与G1要点总结

一.Java内存区域 1.运行时数据区的介绍 2.站在线程的角度看Java内存区域 3.深入分析堆和栈的区别 4.方法的出入栈和栈上分配、逃逸分析及TLAB 5.虚拟机中的对象创建步骤 6.对象的内存布局 1.运行时数据区的介绍 运行时数据区的类型:程序计数器、Java虚拟机栈、本地方…

车辆安全供电系统开发原则和实践

摘要在汽车行业中,安全应用的重要性在不断提升,例如受车辆自动化发展以及机械备用系统重要性降低的影响。为应对这些趋势,安全相关的电气和 / 或电子系统(E/E 系统)的电源输入必须由供电系统来保障,这使得功…

WebSocket客户端库:websocket-fruge365

🚀 从零开始打造一个WebSocket客户端库:websocket-fruge365 📖 前言 在现代Web开发中,实时通信已经成为不可或缺的功能。无论是聊天应用、实时数据监控,还是在线协作工具,WebSocket都扮演着重要角色。然而…

rocketmq批量执行跑批任务报错

rocketmq批量执行跑批任务,报下面的错误,怎么处理一下呢?是修改配置还是修改代码还是? org.apache.rocketmq.client.exception.MQBrokerException: CODE: 215 DESC: [FLOW]client has exhausted the send quota for the current …

大语言模型(LLM)简介与应用分享

1. 什么是大语言模型(LLM) 大语言模型(Large Language Model,简称 LLM)是基于 深度学习 和 海量文本数据 训练而成的人工智能模型。 采用 Transformer 架构参数规模巨大(数十亿到数千亿)能够 理…

【算法笔记】选择排序、插入排序、冒泡排序、二分查找问题

算法的笔记,直接上代码,思路和问题这些,都在代码注释上面 1、工具类 为了生成测试代码和比较器,专门写了一个数组工具类,代码如下: /*** 数组工具类*/ public class ArrUtil {/*** 生成随机数组* 长度是[0,…

行业分享丨基于SimSolid的大型汽车连续冲压模具刚度分析

*本文投稿自机械零部件制造业用户 汽车连续模具的刚度直接决定了冲压件质量(尺寸精度、表面缺陷)与模具寿命。传统有限元分析(FEA)在面对大型复杂模具装配体时,存在网格划分困难、计算资源消耗大、周期长等瓶颈。本文以…

用AI生成的html页面设计放到到Axure上实现再改造的方法

要将 AI 生成的 HTML 原型导入 Axure,该方法的核心逻辑是以 Figma 为 “中间桥梁”(因 Axure 无法直接读取 HTML,需通过 Figma 转换格式),分 3 步即可完成,以下是详细操作指南(含每步目标、具体…

从入门到实战:Linux sed命令全攻略,文本处理效率翻倍

从入门到实战:Linux sed命令全攻略,文本处理效率翻倍 文章目录从入门到实战:Linux sed命令全攻略,文本处理效率翻倍一、认识sed:什么是流编辑器?二、吃透sed工作原理:为什么它能高效处理文本&am…

TIOBE 8月编程语言榜深度解析:Python占比突破26%,Perl成最大黑马

根据TIOBE最新发布的2025年8月编程语言排行榜,一场静默的技术变革正在上演:Python以26.14%的占比首次突破26%大关,连续12个月稳居榜首。这一数据不仅刷新了Python自身的历史纪录,更成为TIOBE指数自2001年创立以来的最高单语言占比…

从发现到恢复,看瑞数信息如何构建“抗毁重构”实战路径

在信息化社会,“韧性”“弹性”这些词汇常被用来形容系统抵御和应对风险的能力,但对于身处关键基础设施行业的运营者来说,这些概念往往过于抽象,难以直接指导实践。 相比之下,“抗毁重构”更具画面感。它不仅是一个管理…