mirrexagon / nixpkgs-esp-dev

Nix flake and overlay for ESP8266 and ESP32 development.
Creative Commons Zero v1.0 Universal
115 stars 52 forks source link

"Please use idf.py only in an ESP-IDF shell environment." #24

Closed ibarrick closed 1 year ago

ibarrick commented 1 year ago

After overriding the version to 5.1 (I have an h2 chip and need support for that), I get this error every time I run idf.py:

"Please use idf.py only in an ESP-IDF shell environment."

This is apparently an error printed by esp-idf if it fails to import something but I cannot for the life of me understand why anything would be different when changing the version. All the imports in that try...except block are the same in 5.0.2.

https://github.com/espressif/esp-idf/blob/5181de8ac5ec5e18f04f634da8ce173b7ef5ab73/tools/idf.py#L46

mirrexagon commented 1 year ago

Looking at the tools/requirements/requirements.core.txt, it looks like there are some more required Python packages than in v5.0.x. I will try adding them and updating the versions to follow https://dl.espressif.com/dl/esp-idf/espidf.constraints.v5.1.txt, and see if that fixes it.

This highlights that now that we aren't using mach-nix to dynamically get the Python packages, overriding the ESP-IDF version is less useful. I'm not sure what to do about that, but for now, I will just update the default ESP-IDF and the Python packages.

mirrexagon commented 1 year ago

After updating the Python packages and ESP-IDF, I can build for ESP32-C6 and ESP32-H2, and flash ESP32-C6 (I have no H2 board to test with, unfortunately).

Let me know if this doesn't solve the problem.