ESP32-WSL開發環境搭建過程中遇到的問題及解決方案

文章目錄

  • 應用場景:
  • 問題1描述:
  • 原因分析:
  • 解決方案:
    • 先檢查 ESP-IDF 工具鏈是否安裝完整
        • 設定工具路徑變量一切正常:
  • 執行重新運行安裝腳本后又報錯:
  • 原因分析
  • 解決方法:
    • 第一步:安裝python3.10-venv包(核心修復)
    • 第二步:重新執行 ESP-IDF 安裝腳本,重建虛擬環境
      • 安裝過程中會看到:
    • 第三步:驗證激活 ESP-IDF 環境
  • 問題2描述:
      • 因為沒有rich模塊造成的激活失敗:
      • 解決方法


應用場景:

ESP32-WSL開發環境搭建過程中遇到的問題及解決方案


問題1描述:

ESP-IDF wsl 開發環境搭建完畢后,執行激活命令失敗。

comeon@CARtech-jg:~/esp-idf$ . ./export.sh
Checking "python3" ...
Python 3.10.12
"python3" has been detected
error: Unable to import the rich module: No module named 'rich'. Please execute the install script.ERROR: Activation script failed
Command '['/home/comeon/.espressif/python_env/idf5.5_py3.10_env/bin/python', '/home/comeon/esp-idf/tools/export_utils/activate_venv.py', '--export', '--shell', 'bash']' returned non-zero exit status 1.
To view detailed debug information, set ESP_IDF_EXPORT_DEBUG=1 and run the export script again.

在這里插入圖片描述


原因分析:

這個錯誤提示表明 ESP-IDF 環境激活失敗,原因是缺少rich Python 模塊。可以按照以下步驟解決:

首先確保你在 ESP-IDF 的 Python 虛擬環境中安裝rich模塊:

# 激活ESP-IDF的Python虛擬環境
source ~/.espressif/python_env/idf5.5_py3.10_env/bin/activate# 安裝rich模塊
pip install rich

執行第一個命令時,報錯:

comeon@CARtech-jg:~/esp-idf$ source ~/.espressif/python_env/idf5.5_py3.10_env/bin/activate
-bash: /home/comeon/.espressif/python_env/idf5.5_py3.10_env/bin/activate: No such file or directory

在這里插入圖片描述

從錯誤信息來看,ESP-IDF 對應的 Python 虛擬環境目錄 idf5.5_py3.10_env 不存在,可能是之前的 ESP-IDF 工具鏈安裝不完整,或虛擬環境未成功創建導致的。


解決方案:

可按以下步驟重新修復環境,解決激活問題:

先檢查 ESP-IDF 工具鏈是否安裝完整

進入 esp-gitee-tools 目錄(之前下載的工具目錄,若忘記路徑可通過 find ~ -name “esp-gitee-tools” 查找):

cd ~/esp-gitee-tools  # 若路徑不同,替換為實際的esp-gitee-tools目錄

重新執行 ESP-IDF 的安裝腳本,補全工具鏈和虛擬環境:

export EGT_PATH=$(pwd)  # 設定工具路徑變量
cd ~/esp-idf  # 進入ESP-IDF主目錄
$EGT_PATH/install.sh  # 重新運行安裝腳本

安裝過程中會自動創建對應 Python 版本的虛擬環境(如 idf5.5_py3.10_env),并安裝依賴模塊。若出現 “是否繼續” 的提示,輸入 y 確認,等待安裝完成(需保證網絡穩定,避免中斷)。

設定工具路徑變量一切正常:

在這里插入圖片描述

執行重新運行安裝腳本后又報錯:

comeon@CARtech-jg:~/esp-idf$ $EGT_PATH/install.sh
Detecting Python interpreter
Checking "python3" ...
Python 3.10.12
"python3" has been detected
Installing ESP-IDF tools
Updating /home/comeon/.espressif/idf-env.json
Selected targets are: esp32c3, esp32p4, esp32c2, esp32c6, esp32s2, esp32h2, esp32c61, esp32h21, esp32s3, esp32h4, esp32c5, esp32
Current system platform: linux-amd64
Installing tools: xtensa-esp-elf-gdb, riscv32-esp-elf-gdb, xtensa-esp-elf, riscv32-esp-elf, esp32ulp-elf, openocd-esp32, esp-rom-elfs
Skipping xtensa-esp-elf-gdb@16.2_20250324 (already installed)
Skipping riscv32-esp-elf-gdb@16.2_20250324 (already installed)
Skipping xtensa-esp-elf@esp-14.2.0_20241119 (already installed)
Skipping riscv32-esp-elf@esp-14.2.0_20241119 (already installed)
Skipping esp32ulp-elf@2.38_20240113 (already installed)
Skipping openocd-esp32@v0.12.0-esp32-20250226 (already installed)
Skipping esp-rom-elfs@20241011 (already installed)
Installing Python environment and packages
Python 3.10.12
/home/comeon/.espressif/python_env/idf5.5_py3.10_env/bin/python: No module named pip
WARNING: pip is not available in the existing virtual environment, new virtual environment will be created.
WARNING: Removing the existing Python environment in /home/comeon/.espressif/python_env/idf5.5_py3.10_env
Creating a new Python environment in /home/comeon/.espressif/python_env/idf5.5_py3.10_env
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.apt install python3.10-venvYou may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.Failing command: /home/comeon/.espressif/python_env/idf5.5_py3.10_env/bin/python3Traceback (most recent call last):File "/home/comeon/esp-idf/tools/idf_tools.py", line 3572, in <module>main(sys.argv[1:])File "/home/comeon/esp-idf/tools/idf_tools.py", line 3562, in mainaction_func(args)File "/home/comeon/esp-idf/tools/idf_tools.py", line 2830, in action_install_python_envsubprocess.check_call(File "/usr/lib/python3.10/subprocess.py", line 369, in check_callraise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'venv', '/home/comeon/.espressif/python_env/idf5.5_py3.10_env']' returned non-zero exit status 1.

在這里插入圖片描述

原因分析

從報錯信息可以明確,問題根源是 Ubuntu 系統缺少python3.10-venv包—— 這是 Python 3.10 創建虛擬環境必需的組件,沒有它會導致 ESP-IDF 無法生成idf5.5_py3.10_env虛擬環境,進而觸發后續的pip缺失和激活失敗。

解決方法:

第一步:安裝python3.10-venv包(核心修復)

sudo apt update && sudo apt install -y python3.10-venv

udo apt update:更新軟件源列表,確保能找到最新的python3.10-venv包;
sudo apt install -y python3.10-venv:自動確認安裝(-y參數),避免手動輸入y確認。

comeon@CARtech-jg:~/esp-idf$ sudo apt update && sudo apt install -y python3.10-venv
[sudo] password for comeon:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [127 kB]
Get:5 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [2595 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2843 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1227 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/universe Translation-en [304 kB]
Get:9 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [994 kB]
Fetched 8347 kB in 8s (1060 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
222 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib python3-pip-whl python3-setuptools-whlpython3.10 python3.10-dev python3.10-minimal
Suggested packages:python3.10-doc binfmt-support
The following NEW packages will be installed:python3-pip-whl python3-setuptools-whl python3.10-venv
The following packages will be upgraded:libpython3.10 libpython3.10-dev libpython3.10-minimal libpython3.10-stdlib python3.10 python3.10-devpython3.10-minimal
7 upgraded, 3 newly installed, 0 to remove and 215 not upgraded.
Need to get 15.1 MB of archives.
After this operation, 2894 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-dev amd64 3.10.12-1~22.04.11 [508 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-dev amd64 3.10.12-1~22.04.11 [4764 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10 amd64 3.10.12-1~22.04.11 [1949 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10 amd64 3.10.12-1~22.04.11 [508 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-stdlib amd64 3.10.12-1~22.04.11 [1850 kB]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 python3.10-minimal amd64 3.10.12-1~22.04.11 [2264 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 libpython3.10-minimal amd64 3.10.12-1~22.04.11 [815 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-pip-whl all 22.0.2+dfsg-1ubuntu0.6 [1680 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3-setuptools-whl all 59.6.0-1.2ubuntu0.22.04.3 [789 kB]
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 python3.10-venv amd64 3.10.12-1~22.04.11 [5726 B]
Fetched 15.1 MB in 15s (1028 kB/s)
(Reading database ... 31282 files and directories currently installed.)
Preparing to unpack .../0-python3.10-dev_3.10.12-1~22.04.11_amd64.deb ...
Unpacking python3.10-dev (3.10.12-1~22.04.11) over (3.10.12-1~22.04.9) ...
Preparing to unpack .../1-libpython3.10-dev_3.10.12-1~22.04.11_amd64.deb ...
Unpacking libpython3.10-dev:amd64 (3.10.12-1~22.04.11) over (3.10.12-1~22.04.9) ...
Preparing to unpack .../2-libpython3.10_3.10.12-1~22.04.11_amd64.deb ...
Unpacking libpython3.10:amd64 (3.10.12-1~22.04.11) over (3.10.12-1~22.04.9) ...
Preparing to unpack .../3-python3.10_3.10.12-1~22.04.11_amd64.deb ...
Unpacking python3.10 (3.10.12-1~22.04.11) over (3.10.12-1~22.04.9) ...
Preparing to unpack .../4-libpython3.10-stdlib_3.10.12-1~22.04.11_a

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94649.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SwiftUI 三陣訣:楊過絕情谷悟 “視圖布陣” 之道

&#x1f4dc; 引子&#xff1a;絕情谷困境&#xff0c;三陣待辨 絕情谷外&#xff0c;瘴氣彌漫。楊過手握玄鐵劍&#xff08;喻 Xcode&#xff09;&#xff0c;凝視谷中涌動的萬千 “毒物”&#xff08;喻待渲染的視圖元素&#xff09;&#xff0c;眉頭緊鎖。 此前他試過硬闖…

以樓宇自控系統為核心,整合多維度技術,打造智能建筑解決方案

在數字化浪潮席卷建筑行業的當下&#xff0c;“智能建筑” 已從概念走向大規模落地&#xff0c;其核心訴求不再是單一設備的智能化&#xff0c;而是建筑整體的 “感知、分析、決策、執行” 閉環能力。傳統智能建筑常陷入 “技術堆砌” 困境 —— 暖通、安防、照明等系統各自為政…

阿里云服務器 篇一(加更):設置二級域名通配符證書

文章目錄 樣例網站 系列文章 域名注冊 為單個域名添加SSL證書 申請 通配符域名 + 根域名 證書 已申請通配符證書,補申請一個根域名證書 更改Nginx配置,統一使用通配符域名證書 替換所有https服務的證書為通配符證書 統一處理http請求跳轉https服務 對所有未定義二級域名的統一…

汽車電子工廠靜電腕帶監控儀雙回路設計降低設備采購成本

在汽車電子制造中&#xff0c;靜電放電&#xff08;ESD&#xff09;風險貫穿從PCB焊接、元件裝配到成品測試的全流程。在新能源汽車零部件產線中需處理大量精密電子組件&#xff0c;靜電隱患導致的典型問題包括&#xff1a;元件損傷&#xff1a;ESD瞬時電壓可能擊穿芯片或導致焊…

Linux操作系統—進程

進程&#xff08;process&#xff09;&#xff1a;&#xff08;1&#xff09;進程的定義&#xff1a;正在進行的程序&#xff0c;會去分配內存資源(mem)&#xff0c;cpu的調度 &#xff0c;(flash ssd:固態硬盤)目的&#xff1a;為了實現并發&#xff0c;同一時刻執行多任務&am…

win11的WSL安裝CentOS9-Stream,并且安裝docker,使用第三方工具連接linux

前面寫了一個安裝centos8的文章&#xff0c;但是發現centos8有很多限制&#xff0c;很多東西不能用&#xff0c;于是果斷放棄 一、打開windows的虛擬機功能 自行百度 二、下載CentOS9-Stream系統 1、下載 地址&#xff1a;https://github.com/mishamosher/CentOS-WSL 請下…

TypeScript實戰:輕松實現數字序號轉中文大寫數字

在前端開發中&#xff0c;我們經常會遇到【將數字序號轉換為中文大寫數字】的需求——比如表單步驟條顯示“第一步”而非“第1步”、文章章節標題用“三”代替 “3”等。今天就帶大家拆解這個常見需求的實現思路&#xff0c;用TypeScript寫出簡潔又安全的轉換函數。 一、需求明…

【C++游記】棧vs隊列vs優先級隊列

楓の個人主頁 你不能改變過去&#xff0c;但你可以改變未來 算法/C/數據結構/C Hello&#xff0c;這里是小楓。C語言與數據結構和算法初階兩個板塊都更新完畢&#xff0c;我們繼續來學習C的內容呀。C是接近底層有比較經典的語言&#xff0c;因此學習起來注定枯燥無味&#xf…

2025年網絡安全技能競賽“觀安杯”管理運維賽 WEB/PWN WP

blindpwn尋找漏洞點上來先看到讓輸入的有長度和數據&#xff0c;其他先不管&#xff0c;測試一下長度&#xff0c;發現最大為16然后blind pwn一般的話有棧溢出和格式化字符串兩種&#xff0c;這里先測試一下格式化字符串然后就會發現啥也沒有&#xff0c;但是會發現一些事情有一…

Linux 打包及壓縮基礎知識總結

一、gz 包1、常用命令命令格式&#xff1a;壓縮&#xff1a;gzip [option] filename解壓&#xff1a;gunzip [option] filename 常用選項&#xff1a;-c &#xff1a; 將壓縮數據輸出到標準輸出中&#xff0c;并保留原文件-d &#xff1a; 解壓縮,相當于gunzip-f &#xff1a; …

FOC算法第三節 等幅值變換與克拉克逆變換

FOC的過程其實就是輸入需求的電機力矩&#xff0c;把需求的電機力矩轉化為三相線電壓輸出&#xff0c;并且讓電機物理輸出你所需求的力矩的過程&#xff0c;這也被稱為電機控制三環中的力矩環&#xff0c;所有后面的位置閉環和速度閉環都得基于這個力矩環&#xff0c;而這個力矩…

解析蛋白質三維結構-Bio3D R包

最近休息時閱讀了一本書&#xff1a; 在書本第5章結構信息學章節的末尾&#xff0c;看到了一個練習題&#xff0c;張貼如下&#xff1a; 這里作者提到了一個R包&#xff0c; 看著挺有意思的&#xff0c;所以就決定小學一下&#xff0c;畢竟這年頭搞分子動力學起碼是python重火…

【開發便利】讓遠程Linux服務器能夠訪問內網git倉庫

打通網絡壁壘&#xff1a;本地Windows直連內網Git的遠程開發終極指南 場景痛點 開發主力是一臺云端的 Linux 服務器&#xff0c;代碼卻存放在無法被公網訪問的公司內網 Git 倉庫中。 本文利用 Windows 電腦作為“網絡橋梁”&#xff0c;搭建一條能自動重連的 SSH 隧道&#xff…

STM32學習日記

ADCADC簡介ADC(Analog-Digital Converter)模擬-數字轉換器ADC可以將引腳上連續變化的模擬電壓轉換為內存中存儲的數字變量&#xff0c;建立模擬電路到數字電路的橋梁12位逐次逼近型ADC&#xff0c;1us轉換時間輸入電壓范圍&#xff1a;0~3.3V&#xff0c;轉換結果范圍&#xff…

文生3D實戰:用[靈龍AI API]玩轉AI 3D模型 – 第7篇

在前幾篇文章中&#xff0c;我們已經體驗了文生視頻、圖生視頻、文生圖、圖生圖、AI翻唱 等功能。本篇將進入更高階的領域 —— 文生3D。借助 [靈龍AI API]&#xff0c;你不僅能生成靜態的 3D模型&#xff0c;還可以快速產出 場景、角色、動畫&#xff0c;為游戲開發、虛擬人、…

林粒粒視頻筆記4-numpy

需要先安裝2個庫&#xff0c;一個是代碼運行平臺&#xff1a;pip3 install notebook還有一個numpy&#xff1a;pip3 install numpy1、在cmd運行環境>>jupyter notebook&#xff0c;瀏覽器自動打開頁面如下&#xff1a;2、創建一個一維數組和二維數據3、分別打印這2個數組…

Hadoop MapReduce 任務/輸入數據 分片 InputSplit 解析

InputSplitInputSplit 是對 MapReduce 作業輸入數據的一種邏輯劃分。它并不直接包含數據本身&#xff0c;而是包含了處理一小塊數據所需的信息&#xff0c;比如數據的位置、起始點和長度。框架會為每個 InputSplit 創建一個 Mapper 任務。從InputSplit.java 的注釋中我們可以得…

【力扣】面試經典150題總結04-區間/棧

1.匯總區間&#xff08;簡單&#xff09;判斷連續的范圍&#xff0c;記錄每個區間的首尾&#xff0c;存進list。2.合并區間&#xff08;中等&#xff09;先按照左端點排序&#xff0c;然后判斷右端點是否和下個區間的左端點重合&#xff0c;重疊進行合并。3.插入區間&#xff0…

SpringBoot 常用跨域處理方案

1.什么是跨域&#xff1f; 跨域是瀏覽器為了保障安全而遵循的一種規則&#xff0c;是同源策略的一部分。 同源&#xff1a;要求協議、域名、端口三者完全相同。 跨域&#xff1a;只要協議、域名、端口中有任何一個不同&#xff0c;瀏覽器就會判定為跨域請求。 跨域&#xf…

Springboot框架的“上海迪士尼”旅游管理網站設計與開發(代碼+數據庫+LW)

摘 要 隨著旅游行業的不斷發展&#xff0c;特別是主題公園的快速增長&#xff0c;如何通過現代信息技術提升旅游服務質量與管理效率成為了行業的重要課題。上海迪士尼作為中國乃至全球知名的主題公園&#xff0c;其旅游管理網站的設計與開發&#xff0c;不只需要滿足游客對信…