This is a (cosmetic?) problem that exists for at least a few months now and is still not solved, so I would like to bring it up again.
While updating an ESP32 device with the espidf framework and ESPHome version 2023.6.5 I get an error stating “ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed.”
This is an excerpt from the ESPHome install log showing the (I hope) applicable parts:
INFO ESPHome 2023.6.5
INFO Reading configuration /config/esphome/t7v13-02.yaml…
INFO Generating C++ source…
INFO Compiling app…
Processing t7v13-02 (board: esp32dev; framework: espidf; platform: platformio/[email protected])HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- framework-espidf @ 3.40404.0 (4.4.4)
- tool-cmake @ 3.16.4
- tool-ninja @ 1.7.1
- toolchain-esp32ulp @ 2.35.0-20220830
- toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Installing ESP-IDF’s Python dependenciesCollecting pyparsing<2.4.0,>=2.0.3
Downloading pyparsing-2.3.1-py2.py3-none-any.whl (61 kB)Collecting click
Downloading click-8.1.5-py3-none-any.whl (98 kB)Installing collected packages: click, pyparsing,
Attempting uninstall: click
Found existing installation: click 8.1.3
Uninstalling click-8.1.3:
Successfully uninstalled click-8.1.3
Attempting uninstall: pyparsing
Found existing installation: pyparsing 3.1.0
Uninstalling pyparsing-3.1.0:
Successfully uninstalled pyparsing-3.1.0
ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
esphome 2023.6.5 requires click==8.1.3, but you have click 8.1.5 which is incompatible.
esphome 2023.6.5 requires pyparsing>=3.0, but you have pyparsing 2.3.1 which is incompatible.
Successfully installed click-8.1.5, pyparsing-2.3.1
Reading CMake configuration…
Generating assembly for certificate bundle…
No dependencies
Following this log it looks like:
- ESPHome first downloads and installs pyparsing 2.3.1 and click 8.1.5
- ESPHome then uninstalls pyparsing 3.1.0 and click 8.1.3
- ESPHome then complains about pyparsing 2.3.1 and click 8.1.5 not being the correct versions: these should be pyparsing >=3.0 and click 8.1.3
I don’t understand how this all works in the background, but it is clear that something is screwed up here.
Is this version dependency control manually set by someone, or is it automatically determined?
See also this forum post from May 15: Esphome 2023.5.0 requires pyparsing>=3.0,… pyparsing 2.3.1… incompatible and this (still open) Github issue: Esphome 2023.5.0 pyparsing version incompatible #4517
The compilation and upload seems to work fine, and the ESP device runs as usual, so it looks like there are no real issues coming from this, but does anybody know whether this indeed is only a cosmetic problem, or could it be a real problem?
I know that this problem only exists with the espidf framework and not the Arduino framework, but because this ESP32 device is used as Bluetooth proxy it is recommended to use the espidf framework (See: Bluetooth Proxy): “The ESP32 Platform component should be configured to use the esp-idf framework, as the arduino framework uses significantly more memory and performs poorly with the Bluetooth proxy enabled.”