将版本从v3.3更新至v4.2版本后,idf.py无法使用
Posted: Fri Mar 26, 2021 2:12 pm
看了官方的说明文档,v4.2采用Python3,所以将Python改为了python3.6,从github上下载了zip包,解压到~/esp目录下,分别完成了install.sh和export.sh结果都成功,分别如下:
然而,在实例项目的目录下,使用idf.py报错,报错信息如下:
请问如何解决呢?不胜感激!
Code: Select all
eric@eric-virtual-machine:~/esp/esp-idf$ sudo ./install.sh
[sudo] password for eric:
Detecting the Python interpreter
Checking "python" ...
Python 3.6.9
"python" has been detected
Installing ESP-IDF tools
Installing tools: xtensa-esp32-elf, xtensa-esp32s2-elf, esp32ulp-elf, esp32s2ulp-elf, openocd-esp32
Skipping xtensa-esp32-elf@esp-2020r3-8.4.0 (already installed)
Skipping xtensa-esp32s2-elf@esp-2020r3-8.4.0 (already installed)
Skipping esp32ulp-elf@2.28.51-esp-20191205 (already installed)
Skipping esp32s2ulp-elf@2.28.51-esp-20191205 (already installed)
Skipping openocd-esp32@v0.10.0-esp32-20200709 (already installed)
Installing Python environment and packages
fatal: not a git repository (or any of the parent directories): .git
WARNING: Git describe was unsuccessul: Command '['git', 'describe']' returned non-zero exit status 128.
Installing Python packages from /home/eric/esp/esp-idf/requirements.txt
WARNING: The directory '/home/eric/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Ignoring python-socketio: markers 'python_version <= "2.7"' don't match your environment
Ignoring None: markers 'sys_platform == "win32"' don't match your environment
Requirement already satisfied: setuptools>=21 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 4)) (54.1.2)
Requirement already satisfied: click>=5.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 8)) (7.1.2)
Requirement already satisfied: pyserial>=3.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 9)) (3.5)
Requirement already satisfied: future>=0.15.2 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 10)) (0.18.2)
Requirement already satisfied: cryptography>=2.1.4 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 11)) (3.4.7)
Requirement already satisfied: pyparsing<2.4.0,>=2.0.3 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 12)) (2.3.1)
Requirement already satisfied: pyelftools>=0.22 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 13)) (0.27)
Requirement already satisfied: gdbgui==0.13.2.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 15)) (0.13.2.0)
Requirement already satisfied: pygdbmi<=0.9.0.2 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 18)) (0.9.0.2)
Requirement already satisfied: reedsolo<=1.5.4,>=1.5.3 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 23)) (1.5.4)
Requirement already satisfied: bitstring>=3.1.6 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 24)) (3.1.7)
Requirement already satisfied: ecdsa>=0.16.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from -r /home/eric/esp/esp-idf/requirements.txt (line 25)) (0.16.1)
Requirement already satisfied: gevent<2.0,>=1.2.2 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.5.0)
Requirement already satisfied: Flask-SocketIO<3.0,>=2.9 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (2.9.6)
Requirement already satisfied: Flask<1.0,>=0.12.2 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (0.12.5)
Requirement already satisfied: Flask-Compress<2.0,>=1.4.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.9.0)
Requirement already satisfied: Pygments<3.0,>=2.2.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (2.8.1)
Requirement already satisfied: cffi>=1.12 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from cryptography>=2.1.4->-r /home/eric/esp/esp-idf/requirements.txt (line 11)) (1.14.5)
Requirement already satisfied: six>=1.9.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from ecdsa>=0.16.0->-r /home/eric/esp/esp-idf/requirements.txt (line 25)) (1.15.0)
Requirement already satisfied: pycparser in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from cffi>=1.12->cryptography>=2.1.4->-r /home/eric/esp/esp-idf/requirements.txt (line 11)) (2.20)
Requirement already satisfied: itsdangerous>=0.21 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Flask<1.0,>=0.12.2->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.1.0)
Requirement already satisfied: Jinja2>=2.4 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Flask<1.0,>=0.12.2->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (2.11.3)
Requirement already satisfied: Werkzeug<1.0,>=0.7 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Flask<1.0,>=0.12.2->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (0.16.1)
Requirement already satisfied: brotli in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Flask-Compress<2.0,>=1.4.0->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.0.9)
Requirement already satisfied: python-socketio>=1.6.1 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Flask-SocketIO<3.0,>=2.9->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (5.1.0)
Requirement already satisfied: greenlet>=0.4.14 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from gevent<2.0,>=1.2.2->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.0.0)
Requirement already satisfied: MarkupSafe>=0.23 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from Jinja2>=2.4->Flask<1.0,>=0.12.2->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (1.1.1)
Requirement already satisfied: bidict>=0.21.0 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from python-socketio>=1.6.1->Flask-SocketIO<3.0,>=2.9->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (0.21.2)
Requirement already satisfied: python-engineio>=4 in /home/eric/.espressif/python_env/idf4.2_py3.6_env/lib/python3.6/site-packages (from python-socketio>=1.6.1->Flask-SocketIO<3.0,>=2.9->gdbgui==0.13.2.0->-r /home/eric/esp/esp-idf/requirements.txt (line 15)) (4.0.1)
All done! You can now run:
. ./export.sh
Code: Select all
eric@eric-virtual-machine:~/esp/esp-idf$ . ./export.sh
Detecting the Python interpreter
Checking "python" ...
Python 3.6.9
"python" has been detected
Adding ESP-IDF tools to PATH...
fatal: not a git repository (or any of the parent directories): .git
WARNING: Git describe was unsuccessul: Command '['git', 'describe']' returned non-zero exit status 128.
Using Python interpreter in /home/eric/.espressif/python_env/idf4.2_py3.6_env/bin/python
Checking if Python packages are up to date...
Python requirements from /home/eric/esp/esp-idf/requirements.txt are satisfied.
Added the following directories to PATH:
/home/eric/esp/esp-idf/components/esptool_py/esptool
/home/eric/esp/esp-idf/components/espcoredump
/home/eric/esp/esp-idf/components/partition_table
/home/eric/esp/esp-idf/components/app_update
/home/eric/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin
/home/eric/.espressif/tools/xtensa-esp32s2-elf/esp-2020r3-8.4.0/xtensa-esp32s2-elf/bin
/home/eric/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin
/home/eric/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin
/home/eric/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200709/openocd-esp32/bin
/home/eric/.espressif/python_env/idf4.2_py3.6_env/bin
Done! You can now compile ESP-IDF projects.
Go to the project directory and run:
idf.py build
Code: Select all
eric@eric-virtual-machine:~/esp/esp-idf$ idf.py
Traceback (most recent call last):
File "/home/eric/esp/esp-idf/tools/idf.py", line 45, in <module>
from idf_py_actions.tools import (executable_exists, idf_version, merge_action_lists, realpath) # noqa: E402
File "/home/eric/esp/esp-idf/tools/idf_py_actions/tools.py", line 1, in <module>
import click
ModuleNotFoundError: No module named 'click'