news 2026/9/10 18:50:28

ESP-IDF macOS 安装:5 步搞定,从 idf.py 找不到到 Hello World

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESP-IDF macOS 安装:5 步搞定,从 idf.py 找不到到 Hello World

ESP-IDF macOS 安装:5 步搞定,从 idf.py 找不到到 Hello World

【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf

上周有人把idf.py build敲进终端,回敬一句zsh: command not found: idf.py。其实 ESP-IDF 在 macOS 上的安装没有想象中复杂,卡住的往往不是编译,而是环境没配对。照着这篇 ESP-IDF 中文教程跟做,全程大约 20 分钟,你只需要在终端敲十几行命令。

30 秒环境自检

开工前花 30 秒确认这三样齐了,省得装到一半被打回来:

  • macOS ≥ 10.15:先跑一条验证命令,输出版本号即可通过。
sw_vers
  • Xcode 命令行工具:没装过就贴这条,装完再回来跑一次确认。
xcode-select --install
  • Homebrew:输出/opt/homebrew/bin/brew说明已就位。
which brew

三项全勾,直接往下走。

一条命令装完所有依赖

brew 负责把编译三件套一次拉齐,装完 ESP-IDF 开发环境配置的硬件依赖就算齐了:

brew install cmake ninja dfu-util python3

Python 这边别急着用系统的。macOS 自带 Python 版本经常对不上,依赖装进去也容易污染系统环境——说白了,venv 隔离一下,省得你后面再回头改:

python3 -m venv .venv source .venv/bin/activate

克隆仓库 → 首次编译(跟着敲就行)

🚀 下面六行,一行一停,看到验收标准再敲下一行。

克隆仓库(git 拉不动卡住的话,先翻急救箱):

git clone https://gitcode.com/GitHub_Trending/es/esp-idf

进入目录并加载环境。这一步会装工具链,首次跑几分钟,耐心等:

cd esp-idf && source export.sh

上图就是 ESP-IDF 的完整链路:你的源码 + 组件 + 工具链,build 出应用,烧进芯片。

切到官方示例,告诉它目标是哪块芯片:

cd examples/get-started/hello_world idf.py set-target esp32

开编。首次全量编译几分钟,盯着终端跑完:

idf.py build

编译收尾打印Project build complete,这步过了。接上开发板,烧录并打开串口监视:

idf.py flash monitor

串口里蹦出Hello world!就是通关了。按Ctrl+4退出监视器。

翻车急救箱(卡住再翻,不用全看)

故障现象一句话根因修复命令
Permission denied脚本没执行权限,macOS 不惯用 sudo 硬闯chmod +x install.sh && ./install.sh
Python 模块缺失 / 版本冲突装到了系统 Python 里互相打架python3 -m venv .venv && source .venv/bin/activate
idf.py: command not found终端还没加载 ESP-IDF 环境,不是没装cd esp-idf && source export.sh
子模块拉取超时直连 GitHub 网络不稳git config --global url."https://gitcode.com/mirrors/".insteadOf https://github.com/

装完之后的两件事

🛠 第一件:把环境变量固化进 zsh,以后开新终端自动就位,不用每次手动 source:

echo "source $(pwd)/export.sh" >> ~/.zshrc

第二件(可选):VS Code 装一下 ESP-IDF 扩展,命令面板里点 "Configure ESP-IDF Extension" 指到仓库目录就能用图形界面了,终端党可以跳过。

图穷匕见,不想碰终端还有图形化安装管理器,装完长这样。

跑通 Hello World 只是起点。以后想跟上游更新,一条命令搞定:

git pull && git submodule update --init --recursive && ./install.sh

再遇到新坑,可以翻翻 SUPPORT_POLICY_CN.md 看官方对各版本的支持承诺。

【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 18:50:27

基于Android与小程序的中医体质健康管理系统开发实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 18:50:22

restic 备份网络文件系统时如何关闭进度扫描(--no-scan)

restic 备份网络文件系统时如何关闭进度扫描(--no-scan) 【免费下载链接】restic Fast, secure, efficient backup program 项目地址: https://gitcode.com/GitHub_Trending/re/restic 当你用 restic 备份网络文件系统(如 NFS 挂载点&…

作者头像 李华
网站建设 2026/9/10 18:50:14

Flutter文本按百分比截断:TextPainter原理与字符边界实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/10 18:47:35

Codex启动模板中如何正确选择Skill:一套筛选项选型评估框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华