espressif / idf-eclipse-plugin

Espressif-IDE (based on Eclipse CDT) for ESP-IDF CMake based projects 4.x and above
Eclipse Public License 2.0
307 stars 121 forks source link

Some Python dependencies must be installed (IEP-347) #198

Closed MTE-MMO closed 2 years ago

MTE-MMO commented 3 years ago

Hello team,

I have follow all steps on this page : https://github.com/espressif/idf-eclipse-plugin Created new project based on hello_world example When I try to build I have the errors below : I have also run install.bat

my os : Windows 10 pro Python 3.9.1 git version 2.30.1.windows.1 java 15.0.2 2021-01-19 Java(TM) SE Runtime Environment (build 15.0.2+7-27) Java HotSpot(TM) 64-Bit Server VM (build 15.0.2+7-27, mixed mode, sharing) Eclipse IDE Version: 2020-12 (4.18.0) Build id: 20201210-1552

CDT Build Console

Building in: C:\Users\Mickael\eclipse-workspace\test\build cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\Users\Mickael\esp\esp-idf\tools\cmake\toolchain-esp32.cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DIDF_TARGET=esp32 C:\Users\Mickael\eclipse-workspace\test -- Project is not inside a git repository, or git repository has no commits; will not use 'git describe' to determine PROJECT_VER. -- Building ESP-IDF components for target esp32 -- Checking Python dependencies... The following Python requirements are not satisfied: click>=5.0 pyserial>=3.0 future>=0.15.2 cryptography>=2.1.4 pyparsing>=2.0.3,<2.4.0 pyelftools>=0.22 gdbgui==0.13.2.0 pygdbmi<=0.9.0.2 reedsolo>=1.5.3,<=1.5.4 bitstring>=3.1.6 ecdsa>=0.16.0 esp-windows-curses; sys_platform == 'win32' To install the missing packages, please run "C:\Users\Mickael\esp\esp-idf\install.bat" Diagnostic information: IDF_PYTHON_ENV_PATH: C:\Users\Mickael.espressif\python_env\idf4.2_py3.9_env Python interpreter used: C:\Users\Mickael.espressif\python_env\idf4.2_py3.9_env\Scripts\python.exe CMake Error at C:/Users/Mickael/esp/esp-idf/tools/cmake/build.cmake:271 (message): Some Python dependencies must be installed. Check above message for details. Call Stack (most recent call first): C:/Users/Mickael/esp/esp-idf/tools/cmake/build.cmake:397 (__build_check_python) C:/Users/Mickael/esp/esp-idf/tools/cmake/project.cmake:395 (idf_build_process) CMakeLists.txt:6 (project)

-- Configuring incomplete, errors occurred! See also "C:/Users/Mickael/eclipse-workspace/test/build/CMakeFiles/CMakeOutput.log". cmake --build . -- -v ninja: error: loading 'build.ninja': Le fichier spécifié est introuvable.

Build complete (0 errors, 0 warnings): C:\Users\Mickael\eclipse-workspace\test\build

kolipakakondal commented 3 years ago

@igrr @projectgus Any thoughts on why are we getting this issue, I heard from a couple of other users as well. Any diagnostic information we can ask for?

projectgus commented 3 years ago

@mt-tronic

I have also run install.bat

Could you post the output from running install.bat, please? Maybe this process is picking up a different Python executable, so the packages are already installed but for a different version than Python 3.9?

MTE-MMO commented 3 years ago

Hello @projectgus

In attachment the output from install.bat. As you can see their is a big ERROR block.

install_output.log

projectgus commented 3 years ago

Hi @mt-tronic,

Thanks for the update. This error is why the later step failed, Python has failed to install dependencies that are required for ESP-IDF.

This is because one of the ESP-IDF dependencies requires a particular version of gevent, and this version doesn't provide a precompiled "wheel" for Python 3.9. It will work with Python 3.8 or earlier, only - or it needs additional software installed to compile the package for Python 3.9.

The corresponding ESP-IDF issue is logged here: https://github.com/espressif/esp-idf/issues/6111

Probably the simplest workaround from the ones listed there is to set an environment variable on your system: PIP_EXTRA_INDEX_URL with value https://dl.espressif.com/pypi and then re-run install.bat. It should then complete without an error, and you can move on to use ESP-IDF.

(Otherwise, poissibly you could try installing Python 3.8 or using the updated version of the tools installer posted in the linked issue? @kolipakakondal I'm not sure what the interaction between the new installer and Eclipse is?)

Sorry for the inconvenience.

EDIT: Updated with the root cause EDIT 2: Updated with another workaround

MTE-MMO commented 3 years ago

Hi @projectgus

By removing Python 3.9 and installing 3.8 it's work fine.

By adding PIP_EXTRA_INDEX_URL -> not work By installing https://dl.espressif.com/dl/esp-idf-tools-setup-online-2.5.exe -> not work

Many thanks

projectgus commented 3 years ago

Thanks for the update, @mt-tronic . Will check on those other fixes with my colleague. In any case, I'm glad you got it working.

georgik commented 3 years ago

@mt-tronic Thank you for reporting the issue.

The solution with installing Python 3.8 works, because this version of Python has gevent and some other wheels ready at pypi. The solution with installing Python 3.9 does not work, because some wheels are not built by maintainers and requires Visual Studio C++ installed to be compiled.

We pre-built wheels for Python 3.9 and published here https://dl.espressif.com/pypi as mentioned above.

I'm curious why solutions with PIP_EXTRA_INDEX_URL and https://dl.espressif.com/dl/esp-idf-tools-setup-online-2.5.exe does not work. @mt-tronic My I ask you for additional diagnostic? Please, run the installer and post the log from installer. You can find it in C:\Users\Username\AppData\Local\Temp with filename `Setup Log DATE.txt.

Thank you very much.

miLORD1337 commented 3 years ago

@georgik FWIW, your suggested workaround using PIP_EXTRA_INDEX_URL did work for me.

Thanks!

daverathbone commented 3 years ago

From command line idf.py -p COM7 flash works. (Some times...) From Eclipse builds then .... (I have python in path. (text below) From Visual Studio Code .. Includes paths can't be found despite JSON paths being correct in VSC.

Why cant you code in C or C++ ? for a company that make smart chips your "helper" code is dumb! trying to fudge Eclipse and Visual Studio to call linker and complier with broken "smart" console scripts. OS dependent C/C++ code for Windows and Linux is no big deal! ST,TI, Infineon, AVR and Microchip just works in these environments. Mad that you need freertos for a timer and UART in "Blink". -Less is more.

I'm having to use Notepad++ with my own scripts for linker and compiler (Crazy!) For commercial applications, as I can not spend each day fixing Espressif Hobby coder team.

BUG. The following Python requirements are not satisfied:

ecdsa>=0.16.0 To install the missing packages, please run "C:\Users\Dave\esp\esp-idf\install.bat" Diagnostic information: IDF_PYTHON_ENV_PATH: C:\Users\Dave.espressif\python_env\idf4.1_py3.7_env Python interpreter used: C:\Users\Dave.espressif\python_env\idf4.1_py3.7_env\Scripts\python.exe ESP-IDF v4.2-dirty

georgik commented 3 years ago

@daverathbone Thank you for reporting the problem.

The ecosystem of tools around ESP-IDF is built on Python. The Python is used in tooling since the early days of ESP-IDF. Many open-source Python tools are contributed either by Espressif or by the community. We're aware of the problems with Python on Windows. Windows is one of the most challenging platforms in this context.

To resolve several problems with Windows we've updated the Tool installer which now contains Embedded Python and Embedded Git which avoid collision with other Pythons or Anacondas. The new installer contains also improved integration with Eclipse.

Please use the following installer 2.7+ to update your environment: https://dl.espressif.com/dl/esp-idf/

Regarding runtime for tools, we're testing the approach with Rust which allows building self-contained binaries which do not require installation of runtime like Python.

Regarding Visual Studio Code. Please try to update your environment with the installer. If the problem with Visual Studio Code is not resolved, please open a new issue in the project https://github.com/espressif/vscode-esp-idf-extension

JKSAR commented 3 years ago

I'm having the same problem with Linux:

Ubuntu 20.04.2 Eclipse Version: 2020-12 (4.18.0) openjdk 11.0.11 2021-04-20 esp-idf-v4.0.3 python 3.8.10 git version 2.25.1

Already set environment variable PIP_EXTRA_INDEX_URL with value https://dl.espressif.com/pypi

Any idea?

Thanks!

JKSAR commented 3 years ago

I'm having the same problem with Linux:

Ubuntu 20.04.2 Eclipse Version: 2020-12 (4.18.0) openjdk 11.0.11 2021-04-20 esp-idf-v4.0.3 python 3.8.10 git version 2.25.1

Already set environment variable PIP_EXTRA_INDEX_URL with value https://dl.espressif.com/pypi

Any idea?

Thanks!

I managed to solve all the problems I was having as follows:

  1. I installed Linux (Ubuntu) from scratch

  2. I carefully performed ALL the steps described in the following link: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html#step-2-get-esp- idf

OBS1: in this step I had not installed neither the JDK, nor Eclipse nor the Espressif plugin. I recommend that the installation of the JDK, Eclipse and especially the Espressif plugin be performed AFTER performing all the steps in item 2 (above)

Once you've finished all the steps, you'll be able to generate the 'hello_world' example, connect to the device (via Putty), compile, upload to ESP32 and run all via command line, all without having installed Eclipse yet

OBS2.: in this step you will have to install the ESP-IDF package, so in the future when you install Eclipse and the plugin, you should not install this package again

  1. If you were successful in the previous step, follow the instrucitons to intall Espressif Plugin (https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md) Install JDK (recommend openjdk-11-jdk) Eclipse (recommend 2020-12) and finally, install the Espressif plugin.

When configuring the ESP-IDF package, choose the option "Check Use an existing ESP-IDF directory from the file system" and then "Choose an existing ESP-IDF directory from the file system". Select the installation folder of the ESP-IDF package you performed in step 2 (in my case the folder is /home//esp/esp-idf)

image

After everything is installed, try creating an Espressif IDF Project in Eclipse as a copy of the "Hello World" example.

Best Regards,

Julio Cesar

alirana01 commented 2 years ago

The latest release resolve the issues mentioned