Initales Laden von Projekt schlägt fehl, generieren html header files

jetzt kommt die Fehlermeldungen:error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

und mit penv/bin davor? so wie der minify Aufruf?

1 „Gefällt mir“

Das war es, jetzt läuft der build durch.
vielen Dank

Mit dieser Änderung in der processHtml.py hat es bei mir wieder funktioniert.

1 „Gefällt mir“

Ich bin auf einem komplett neu aufgesetzten, aktuellen System. Habe mir das Repo nochmal frisch geklont, und habe immmer noch den oben genannten Fehler

NameError: name 'pkg_resources‘ is not defined

Wenn ich die Änderungen von @Ajuko umsetze, funktioniert es, aber verstehen tue ich sie nicht wirklich. Trotzdem vielen Dank @Ajuko, ohne deine Änderungen ist das Projekt derzeit nicht kompilierbar.

Komisch ist nur, dass der Fehler nur bei einigen auftritt, vielleicht nur bei solchen, die ein neues System benutzen?

Ich habe mich seit etwas Längerem mal wieder mit dem Projekt beschäftigt, früher, d.h. so von 2022-2024 hatte ich nie Probleme beim Kompilieren, auch wenn ich mal wieder ein System neu aufgesetzt hatte. Wurde in der processHtml.py was geändert, die minify_html hatten wir früher nicht verwendet?

Naja es ist halt einfach eine andere Art und Weise, das Paket zu installieren.

Doch, ist es, wenn man setuptools installiert, wie @JHB weiter oben beschrieben hat. Ich hatte den Prozess demletzt schon mal skizziert: Dev-Branch - #668 von biologist

Da wird öfter mal was dran verändert, wie man in der Commit-History auch sehen kann:

git log --pretty=format:"%h | %an | %ad | %s" --date=short -- processHtml.py

Ich muss aber zugeben, dass mir dieses Problem bis vor kurzem auch nicht bekannt war. Vielleicht reicht ja jmd. einen PR dazu ein. Alternativ gibt’s inzwischen aber auch fertige Binaries und es ist allerhand über das Webinterface inzwischen konfigurierbar.

Ich frage mich beispielsweise auch, warum das bei Github nicht passiert. Offenbar ist dort im Image das Paket direkt dabei. Aber ja: Warum das Thema hier nicht früher/öfter aufgepoppt ist, weiß ich auch nicht.

Ich habe die processHtml.py mal leicht angepasst, so dass die setuptools nachinstalliert werden, wenn sie nicht vorhanden sind:

Das klappt dann (erstmal) auch, jedoch wird Folgendes als Warnung angezeigt:

Installing collected packages: setuptools

Successfully installed setuptools-80.9.0

/Users/torsten/Development/Platformio/Projects/ESPuino/processHtml.py:29: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.

Insofern macht’s eher keinen Sinn, dass ich hier jetzt noch einen Commit raushaue, wenn es bald dann obsolet wird. Daher scheint Importlib (hat mir ChatGPT als Alternative auch vorgeschlagen) wohl die bessere Alternative zu sein; habe die Lösung von @ajuko übernommen (Fehler beim Build pkg_resources' is not defined - #4 von Ajuko).

Ich laufe im Anschluss jedoch in folgenden Fehler.

Reading CMake configuration...
-- git rev-parse returned 'fatal: not a git repository (or any of the parent directories): .git'
-- Building ESP-IDF components for target esp32
-- Configuring incomplete, errors occurred!

fatal: not a git repository (or any of the parent directories): .git
CMake Error at /Users/torsten/.platformio/packages/framework-espidf/tools/cmake/build.cmake:620 (message):
  Traceback (most recent call last):

    File "<frozen runpy>", line 189, in _run_module_as_main
    File "<frozen runpy>", line 112, in _get_module_details
    File "/Users/torsten/.platformio/penv/.espidf-5.4.2/lib/python3.13/site-packages/idf_component_manager/__init__.py", line 6, in <module>
      from idf_component_tools.environment import ComponentManagerSettings
    File "/Users/torsten/.platformio/penv/.espidf-5.4.2/lib/python3.13/site-packages/idf_component_tools/__init__.py", line 9, in <module>
      if ComponentManagerSettings().DEBUG_MODE:
         ~~~~~~~~~~~~~~~~~~~~~~~~^^
    File "/Users/torsten/.platformio/penv/.espidf-5.4.2/lib/python3.13/site-packages/pydantic_settings/main.py", line 193, in __init__
      super().__init__(
      ~~~~~~~~~~~~~~~~^
          **__pydantic_self__._settings_build_values(
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ...<27 lines>...
          )
          ^
      )
      ^
    File "/Users/torsten/.platformio/penv/.espidf-5.4.2/lib/python3.13/site-packages/pydantic/main.py", line 250, in __init__
      validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
    File "/Users/torsten/.platformio/penv/.espidf-5.4.2/lib/python3.13/site-packages/idf_component_tools/environment.py", line 148, in fallback_to_default
      if field.validation_alias:
         ^^^^^^^^^^^^^^^^^^^^^^

  AttributeError: 'NoneType' object has no attribute 'validation_alias'

Call Stack (most recent call first):
  /Users/torsten/.platformio/packages/framework-espidf/tools/cmake/project.cmake:718 (idf_build_process)
  CMakeLists.txt:3 (project)

Das scheint irgendwas pioarduino-spezisches zu sein, weil wenn ich in der platformio.ini die Plattform ändere auf

platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.32/platform-espressif32.zip ; Arduino 3.3.2 (ESP-IDF 5.5.1)

dann kommt der Fehler nicht.

Hier der Commit dazu:

Übrigens wird als Extension jetzt auch pioarduino in VSC vorgeschlagen. Muss man auch mal testen, was das so kann.

Update: Nachdem es auch im GitHub-Build den gleichen Fehler gab, habe ich im dev-Branch ein Update auf ESP-IDF 5.5.1 (Arduino 3.3.1) gemacht.

Hat bei meinen Tests keine Probleme gemacht, aber sowas wie z.B. BT habe ich auch nicht getestet.
Wer testet?

1 „Gefällt mir“

Ok, danke, das hatte ich in der Zwischenzeit nicht mitbekommen, dass diese dort beschriebenen Schritte mittlerweile nötig sind - früher war das zumindest bei mir auf Linux nie nötig.

Tatsächlich ist das Kompilieren auch dann noch nicht möglich gewesen. Ich bin in den

fatal: not a git repository (or any of the parent directories): .git

Error gerannt und einige Stunden gebraucht, ihn zu lösen, leider sehe ich erst jetzt, dass du diesen Fehler ebenfalls, wohl zeitgleich, gelöst hast, wahrscheinlich viel schneller als ich.

Auch das rennt dann auf meinem frischen System noch nicht ohne Fehler durch, ich musste dann noch die neu vorgeschlagene pioarduino Extension installieren oder alternativ
python -m pip install -U platformio
ausführen. Auch das musste man früher - zumindest in meiner Erinnerung - nicht machen.

Also brauchte es insgesamt drei Änderungen den Code wieder kompilieren zu lassen.

Nun ist mit deinen jüngsten Änderungen der dev-Branch (nicht der master) wieder kompilierfähig ohne dass es dazu noch die Änderungen bedürfen, die du oben verlinkst: Dev-Branch - #668 von biologist. Zumindest auf Linux-Systemen sind die Änderungen nicht mehr nötig.

Danke für deine Hilfe!

Der Punkt ist, dass es mit dem minify Probleme gab und dann haben wir das auf eine Version festgepinnt. Da wurde vermutlich nicht bedacht, dass man dafür dann entsprechend auch das Paket setuptools braucht.

Ich war tatsächlich bisschen irritiert, dass du von diesem Problem gar nix geschrieben hattest bzw. hatte mich gefragt, ob das Problem tatsächlich erst in der Zeitspanne zwischen deines Posts und meinem Test aufgetreten ist. War aber auf jeden Fall nix, was an ESPuino lag. Hatten wir kürzlich schon mal so einen Fall.

Wurde mir auch vorgeschlagen, ich habe sie jedoch erstmal noch nicht installiert. Muss ich mal noch testen.

Korrekt, ich habe das noch nicht in den master gemergt, da ich wollte, dass mal noch jmd. die neue Version testet. Ich habe auf die Schnelle keine Probleme gesehen, aber auch nicht megaviel getestet.

Ich kann compilieren & hochladen. Weboberfläche/Info zeigt

Bluetooth Kopfhörer & Lautsprecher funktionieren :ok_hand:

1 „Gefällt mir“

Hab’s gestern auch noch in den master gemergt und ein Release 2.4.3 angelegt.