最近在我的M1 MAC下安装了ESP32 CAM,非常好用。搭建环境的时候折腾了一下。这里做一个记录,希望能给有类似情况的同学提供一些线索。

1\。对于mac的big sur系统,最好安装python 3.9.1以上(我用的是3.9.6),先安装Python 3.0 9.1,再安装IDF。 Python可以下载安装包。安装包的下载地址为:https://npm.taobao.org/mirrors/python

安装目录通常是/usr/local/bin/python3 九

2\。对于git clone ESP32的开发环境IDF,注意不能使用直接下载的zip包。 Git地址:https://github.com/espressif/esp-idf,克隆地址:https://github.com/espressif/esp-idf.git

3\。 git 下载最新的 ESP 32 CAM 组件包 esp32 camera。 anxinco的例子中的esp32摄像头太老了,不支持mac的big sur系统。下载后用anxinco的项目原来的esp32摄像头目录覆盖新的esp32摄像头目录:esp32/cam/components/,克隆地址:https://github.com/espressif/esp32-camera

4\。设置默认的 python 版本。 mac不允许你更改/usr/bin/python文件(这个文件连接的是mac系统默认的python 2.7,不能使用、删除或更改,可以使用别名):

vi ~/.bash_profile

添加:别名python u003d“/usr/local/bin/Python 3.9”

保存退出后执行 source ~/bash_profile 使配置生效

4\。进入IDF目录运行/install.sh,会自动检测python 3 9的使用。一般情况下,顺利安装IDF的python环境idf4 4_py3。 9_env,安装目录一般为:

/Users/songfengchen/.espressif/python_env/idf4.4_py3.9_env /,其中songfengchen是当前mac用户名

5\。再次编辑bash_profile,指定python为idf环境下的python文件,否则执行下一步/export.sh可能会失败,提示python不是idf配置的python环境下的文件,

(警告:python解释器未从IDF_PYTHON_ENV_PATH运行,具体报错信息如下)

songfengchen@Songfengs-MacBook-Air ESP-IDF % . ./export.sh

将 IDF_PATH 设置为 '/Users/songfengchen/Documents/sean/Develop/ESP-IDF'

检测 Python 解释器

检查“蟒蛇”...

检查“python3”...

Python 3.8.2

“python3”已被检测到

将 ESP-IDF 工具添加到 PATH...

在 /usr/bin/python 中使用 Python 解释器

检查 Python 包是否是最新的...

不满足以下 Python 要求:

点击>u003d7.0

pyserial>u003d3.3

pyparsing>u003d2.0.3,<2.4.0

pyelftools>u003d0.22

给点宝贵u003du003d0.13.2.0

pygdbmi<u003d0.9.0.2

蟒蛇插座<5

kconfiglibu003du003d13.7.1

独奏>u003d1.5.3,<u003d1.5.4

位串>u003d3.1.6

ecdsa>u003d0.16.0

构造u003du003d2.10.54

要安装缺少的软件包,请运行“/Users/songfengchen/Documents/sean/Develop/ESP-IDF/install.sh”

诊断信息:

IDF\_PYTHON\_ENV\_PATH: /Users/songfengchen/.espressif/python\_env/idf4.4\_py3.8\_env

使用的 Python 解释器:/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

警告:python 解释器未从 IDF\_PYTHON\_ENV\_PATH 运行

PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:PATHu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF/ components/esptool_py/esptool:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/espcoredump:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/partition_table:/Users /songfengchen/Documents/sean/Develop/ESP-IDF/components/app_update:/Users/songfengchen/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin :/Users/songfengchen/.espressif/tools/xtensa-esp32s2-elf/esp-2021r1-8.4.0/xtensa-esp32s2-elf/bin:/Users/songfengchen/.espressif/tools/xtensa-esp32s3-elf/esp -2021r1-8.4.0/xtensa-esp32s3-elf/bin:/Users/songfengchen/.espressif/tools/riscv32-esp-elf/esp-2021r1-8.4.0/riscv32-esp-elf/bin:/Users/ songfengchen/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/Users/songfengchen/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp -elf-binutils/bin:/Users/songfengchen/.espressif/tools/op enocd-esp32/v0.10.0-esp32-20210401/openocd-esp32/bin:/Users/songfengchen/.espressif/python_env/idf4.4_py3.8_env/bin:/Users/songfengchen/Documents/sean /Develop/ESP-IDF/tools:$PATH:export IDF_PATHu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF:export SDK_PATHu003d/Users/songfengchen/Documents/sean/Develop/ESP- IDF:export IDF_TOOLS_EXPORT_CMDu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF/export.sh:export IDF_TOOLS_INSTALL_CMDu003d/Users/songfengchen/Documents/sean/Develop/ :/图书馆/苹果/usr/binESP-IDF/install.sh:export IDF_PYTHON_ENV_PATHu003d/Users/songfengchen/.espressif/python_env/idf4.4_py3.8_env:/Applications/VMware Fusion.app/Contents/Public

Traceback(最近一次通话最后一次):

文件“<string>”,第 1 行,在 <module> 中

ImportError: No module named click

Traceback(最近一次通话最后一次):

文件“/Users/songfengchen/Documents/sean/Develop/ESP-IDF/tools/idf.py”,第 36 行,在 <module> 中

从 idf_py_actions.tools 导入可执行文件_exists, idf_version, merge_action_lists, realpath #noqa: E402

文件“/Users/songfengchen/Documents/sean/Develop/ESP-IDF/tools/idf_py_actions/tools.py”,第 8 行,在 <module>

导入点击

ImportError: No module named click

(eval):1: 错误模式:[/Users/songfengchen/Documents/sean/Develop/ESP-IDF/tools,

警告:无法为 zsh 版本加载 shell 自动完成功能:5.8!

vi ~/.bash_profile

添加:别名pythonu003d"/users/songfengchen/.stress/python_env/idf4.4_py3.9_env/bin/python3.9"

其中songfengchen是当前mac用户名

保存退出后,执行 source ~/bash_profile 使配置生效 6.运行/export.sh,必须是中间有空格的两点,IDF环境变量可以正确设置。信息如下:

songfengchen@Songfengs-MacBook-Air ESP-IDF % . ./export.sh

检测 Python 解释器

检查“蟒蛇”...

检查“python3”...

Python 3.9.6

“python3”已被检测到

将 ESP-IDF 工具添加到 PATH...

在python中使用Python解释器:别名为/Users/songfengchen/.espressif/python_env/idf4.4_py3.9_env/bin/python3.9

检查 Python 包是否是最新的...

满足 /Users/songfengchen/Documents/sean/Develop/ESP-IDF/requirements.txt 中的 Python 要求。

更新了 PATH 变量:

/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/esptool_py/esptool:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/espcoredump:/Users/songfengchen/Documents/ sean/Develop/ESP-IDF/components/partition_table:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/app_update:/Users/songfengchen/.espressif/python_env/idf4.4 _py3.9_env/bin:/opt/homebrew/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:PATHu003d/Users /songfengchen/Documents/sean/Develop/ESP-IDF/components/esptool_py/esptool:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/espcoredump:/Users/songfengchen/Documents/sean/Develop /ESP-IDF/components/partition_table:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/components/app_update:/Users/songfengchen/.espressif/tools/xtensa-esp32-elf/esp- 2021r1-8.4.0/xtensa-esp32-elf/bin:/Users/songfengchen/.espressif/tools/xtensa-esp32s2-elf/esp-2021r1-8.4.0/xtensa-esp32s2-elf/bin:/Users/songfengchen /.espressif/工具/x tensa-esp32s3-elf/esp-2021r1-8.4.0/xtensa-esp32s3-elf/bin:/Users/songfengchen/.espressif/tools/riscv32-esp-elf/esp-2021r1-8.4.0/riscv32-esp- elf/bin:/Users/songfengchen/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/Users/songfengchen/.espressif/tools/esp32s2ulp-elf/2.28。 51-esp-20191205/esp32s2ulp-elf-binutils/bin:/Users/songfengchen/.espressif/tools/openocd-esp32/v0.10.0-esp32-20210401/openocd-esp32/bin:/Users/songfengchen/.espressif/ 开发/ESP-IDF:export SDK_PATHu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF:export IDF_TOOLS_EXPORT_CMDu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF/ export.sh:export IDF_TOOLS_INSTALL_CMDu003d/Users/songfengchen/Documents/sean/Develop/ESP-IDF/install.sh:export IDF_PYTHON_ENV_PATHu003d/Users/songfengchen/.espressif/python _env/idf4.4_py3.8_env:/Applications/VMwar e Fusion.app/Contents/Public:/Library/Apple/usr/binpython_env/idf4.4_py3.8_env/bin:/Users/songfengchen/Documents/sean/Develop/ESP-IDF/tools:$PATH:export IDF_PATHu003d/Users/songfengchen/Documents/sean/

完成!您现在可以编译 ESP-IDF 项目。

进入项目目录并运行:

idf.py 构建

7\。此时可以进入项目目录进行编译,或者make menuconfnig

8\。注意每次打开新的终端窗口需要进入IDF目录并执行source ~/bash_profile(设置python为3.9),然后执行/export.sh设置IDF环境变量,然后回车编译项目

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐