esp-idf The following Python requirements are not satisfied: future>=0.16.0

User avatar
brp80000
Posts: 138
Joined: Thu Oct 04, 2018 7:13 pm

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby brp80000 » Thu Oct 04, 2018 7:16 pm

I have the same problem on Windows in Eclipse

22:00:31 **** Build of configuration Default for project HelloWorld ****
python "C:\\msys32\\home\\Alex\\esp\\esp-idf\\\\tools\\windows\\eclipse_make.py" flash
Running make in 'C:/Users/Alex/Desktop/workspace/HelloWorld'
including C:/msys32/home/Alex/esp/esp-idf/components/app_update/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/bootloader/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/bootloader_support/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/coap/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/esp32/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/esptool_py/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/mbedtls/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/nghttp/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/partition_table/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/ulp/Makefile.projbuild...
Toolchain path: C:/msys32/opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc.exe
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-75-gbaf03c2c
Expected to see version: crosstool-ng-1.22.0-80-g6c4433a
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
Compiler version: 5.2.0
PROJECT_PATH= COMPONENT_DIRS= make -C C:/msys32/home/Alex/esp/esp-idf/components/bootloader/subproject V=1 BUILD_DIR_BASE=C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader TEST_COMPONENTS= TESTS_ALL= EXCLUDE_COMPONENTS= C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/bootloader.bin
make[1]: Entering directory 'C:/msys32/home/Alex/esp/esp-idf/components/bootloader/subproject'
including C:/msys32/home/Alex/esp/esp-idf/components/esptool_py/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/bootloader_support/Makefile.projbuild...
including C:/msys32/home/Alex/esp/esp-idf/components/bootloader/subproject/main/Makefile.projbuild...
WARNING: Toolchain version is not supported: crosstool-ng-1.22.0-75-gbaf03c2c
Expected to see version: crosstool-ng-1.22.0-80-g6c4433a
Please check ESP-IDF setup instructions and update the toolchain, or proceed at your own risk.
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/bootloader_support -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/bootloader_support/component.mk COMPONENT_NAME=bootloader_support build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/bootloader_support'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/bootloader_support'
Target 'component-bootloader_support-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/bootloader_support/libbootloader_support.a'
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/log -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/log/component.mk COMPONENT_NAME=log build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/log'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/log'
Target 'component-log-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/log/liblog.a'
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/spi_flash -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/spi_flash/component.mk COMPONENT_NAME=spi_flash build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/spi_flash'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/spi_flash'
Target 'component-spi_flash-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/spi_flash/libspi_flash.a'
make: *** [C:\msys32\home\Alex\esp\esp-idf\/make/project.mk:454: check_python_dependencies] Error 1
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/micro-ecc -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/micro-ecc/component.mk COMPONENT_NAME=micro-ecc build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/micro-ecc'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/micro-ecc'
Target 'component-micro-ecc-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/micro-ecc/libmicro-ecc.a'
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/soc -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/soc/component.mk COMPONENT_NAME=soc build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/soc'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/soc'
Target 'component-soc-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/soc/libsoc.a'
make -C C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/main -f C:/msys32/home/Alex/esp/esp-idf/make/component_wrapper.mk COMPONENT_MAKEFILE=C:/msys32/home/Alex/esp/esp-idf/components/bootloader/subproject/main/component.mk COMPONENT_NAME=main build
make[2]: Entering directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/main'
make[2]: Nothing to be done for 'build'.
make[2]: Leaving directory 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/main'
Target 'component-main-build' responsible for 'C:/Users/Alex/Desktop/workspace/HelloWorld/build/bootloader/main/libmain.a'
make[1]: Leaving directory 'C:/msys32/home/Alex/esp/esp-idf/components/bootloader/subproject'
python C:/msys32/home/Alex/esp/esp-idf/tools/check_python_dependencies.py
The following Python requirements are not satisfied:
future>=0.16.0
cryptography
Please run "C:/msys32/mingw32/bin/python.exe -m pip install --user -r C:/msys32/home/Alex/esp/esp-idf/requirements.txt" for resolving the issue.

ESP_Angus
Posts: 2344
Joined: Sun May 08, 2016 4:11 am

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby ESP_Angus » Fri Oct 05, 2018 7:18 am

Hi brp80000,

The steps to fix this are:

- "git pull" the latest master branch of ESP-IDF.
- Re-run the build
- Open a MINGW32 MSYS terminal ("C:\msys32\mingw32.exe" and then run the command(s) which the build has outputted towards the end as it failed (update ESP-IDF first or the steps also won't work when run).

Alternatively, as of today you can download an updated MSYS2 environment which doesn't have this problem.

chromebin
Posts: 77
Joined: Wed Feb 07, 2018 3:53 pm

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby chromebin » Fri Feb 08, 2019 4:00 pm

I just upgraded my IDF (from some 3.2), on Windows 10, went through a long list of menuconfig additions, but now I get this error (which led me here):

Code: Select all

Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: crosstool-ng-1.22.0-80-g6c4433a5
Compiler version: 5.2.0
The following Python requirements are not satisfied:
future>=0.15.2
cryptography>=2.1.4
pyparsing>=2.0.3
The recommended way to install a packages is via "pacman". Please run "pacman -Ss <package_name>" for searching the package database and if found then "pacman -S mingw-w64-i686-python2-<package_name>" for installing it.
NOTE: You may need to run "pacman -Syu" if your package database is older and run twice if the previous run updated "pacman" itself.
Please read https://github.com/msys2/msys2/wiki/Using-packages for further information about using "pacman"
WARNING: The cryptography package have dependencies on system packages so please make sure you run "pacman -Syu" followed by "pacman -S mingw-w64-i686-python2-cryptography".
Alternatively, you can run "C:/msys32/mingw32/bin/python.exe -m pip install --user -r C:/msys32/home/user/esp/esp-idf/requirements.txt" for resolving the issue.
make: *** [C:/msys32/home/user/esp/esp-idf/make/project.mk:476: check_python_dependencies] Error 1
make: ** Esperando que outros processos terminem.
Project is not inside a git repository, will not use 'git describe' to determine PROJECT_VER.
App "app-template" version: 1
The result of the last suggestion in this thread:

Code: Select all

    cd ~/esp/esp-idf; git pull
    Already up to date.
Last time I upgraded everything went smootly.

The suggestions in this thread mostly apply to Linux.

Then I did the suggestions from https://github.com/espressif/esp-idf/issues/2486, the last one failed:

Code: Select all

$ python -m pip install --user -r D:/esp-idf/requirements.txt
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Could not open requirements file: [Errno 13] Permission denied: 'D:/esp-idf/requirements.txt'
Then I saw the error in the path 'D:/esp-idf/requirements.txt', corrected:

Code: Select all

$ python -m pip install --user -r ~/esp/esp-idf/requirements.txt
DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
Requirement already satisfied: setuptools in c:/msys32/mingw32/lib/python2.7/site-packages (from -r C:/msys32/home/user/esp/esp-idf/requirements.txt (line 4)) (40.8.0)
Requirement already satisfied: pyserial>=3.0 in c:/msys32/mingw32/lib/python2.7/site-packages (from -r C:/msys32/home/user/esp/esp-idf/requirements.txt (line 8)) (3.4)
Collecting future>=0.15.2 (from -r C:/msys32/home/user/esp/esp-idf/requirements.txt (line 9))
  Downloading https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz (829kB)
    100% |################################| 829kB 6.8MB/s
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/__init__.py", line 228, in <module>
        monkey.patch_all()
      File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 101, in patch_all
        patch_for_msvc_specialized_compiler()
      File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 164, in patch_for_msvc_specialized_compiler
        patch_func(*msvc9('find_vcvarsall'))
      File "C:/msys32/mingw32/lib/python2.7/site-packages/setuptools/monkey.py", line 151, in patch_params
        mod = import_module(mod_name)
      File "C:/msys32/mingw32/lib/python2.7/importlib/__init__.py", line 37, in import_module
        __import__(name)
      File "C:/msys32/mingw32/lib/python2.7/distutils/msvc9compiler.py", line 306, in <module>
        raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION)
    distutils.errors.DistutilsPlatformError: VC 6.0 is not supported by this module

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:/users/jan.m/appdata/local/temp/pip-install-ohnugn/future/
Weirdly this says some of the requirements are actually met.

Anyway, I have ruined my build. How do I get back to a working install, on W10?

A warning about this happening would have been in order.

Downloading https://dl.espressif.com/dl/esp32_win32 ... 181001.zip now ;(

chromebin
Posts: 77
Joined: Wed Feb 07, 2018 3:53 pm

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby chromebin » Fri Feb 08, 2019 8:15 pm

I ended up doing a full reinstall. What a pain.

And maddening, as to why one still can't download a full install, with standard paths, and with Eclipse properly configured. I know why: the MSYS2 username clobbers paths, so each install is different.

But that is easily remedied: just a adopt a standard username, like "user", modify MSYS2 accordingly (in nsswitch.conf) and now the install is like Arduino: extract and run. With a known username, configuring Eclipse is as downloading a workspace, or importing preferences.

Instructions like those on https://docs.espressif.com/projects/esp ... index.html are useful for documenting the process. But computers should execute such instructions, when they can't be avoided.

Many tutorials have been written and many videos have been made, but they are outdated or erroneous almost the day they are published. So what we have now summarizes itself in a waste of time and mediocre results (never seen otherwise), for everybody, that much includes Espressif.

Knowing how to configure Eclipse or do dev-ops doesn't make someone a better programmer. My boss certainly doesn't think much of me doing these things, and he's right. Documentation doesn't solve the problem, no matter how good it is, as it is always better to not have to depend on documentation.

User avatar
ESP_Roland
Posts: 265
Joined: Tue Oct 09, 2018 10:28 am

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby ESP_Roland » Mon Feb 11, 2019 10:47 am

I post my reply for future readers since the issue seems to be already resolved.

The problem could be avoided by running:

Code: Select all

pacman -S mingw-w64-i686-python2-future
as it was hinted by the error message:

Code: Select all

The recommended way to install a packages is via "pacman". Please run "pacman -Ss <package_name>" for searching the package database and if found then "pacman -S mingw-w64-i686-python2-<package_name>" for installing it.
NOTE: You may need to run "pacman -Syu" if your package database is older and run twice if the previous run updated "pacman" itself.
Unfortunately, some of the packages (future, cryptography) cannot be installed by pip In MSYS.

In future IDF releases, the Windows installer (https://docs.espressif.com/projects/esp ... -installer) should provide a "one-click" solution for installing Python packages.

getitsravanth
Posts: 1
Joined: Thu Mar 07, 2019 12:51 pm

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby getitsravanth » Thu Mar 07, 2019 12:55 pm

after i do make command i always fall up this error i tried in lot of ways but i cant find a way to clear this

The following Python requirements are not satisfied:
cryptography>=2.1.4
Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required packages.
Alternatively, you can run "/usr/bin/python -m pip install --user -r /home/admin-unizen/Desktop/iotbits_esp32/esp-idf/requirements.txt" for resolving the issue.
/home/admin-unizen/Desktop/iotbits_esp32/esp-idf/make/project.mk:500: recipe for target 'check_python_dependencies' failed
make: *** [check_python_dependencies] Error 1

how to clear this error can any one suggest me the commands for Ubuntu 16.04.
i tried a lot cant make it out so please someone send the commands to correct that error.

rochus
Posts: 2
Joined: Sat May 25, 2019 12:24 pm

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby rochus » Sat May 25, 2019 12:54 pm

The following Python requirements are not satisfied:
cryptography>=2.1.4
I also had this even though all versions are up to date. The pip process spit out "Could not find .egg-info directory in install record for cryptography" which might be the reason. As it seems the Python machinery has some problems on Ubuntu 14 and 16.

My work-around was to comment out the line "cryptography>=2.1.4" in esp-idf/requirements.txt

No disadvantage detected so far.

User avatar
ESP_Roland
Posts: 265
Joined: Tue Oct 09, 2018 10:28 am

Re: esp-idf The following Python requirements are not satisfied: future>=0.16.0

Postby ESP_Roland » Mon May 27, 2019 7:31 am

The reason of failure in all of these cases is the broken pip. That is usually the reason when one mixes up Python packages from the OS repo and at the same time using pip with sudo (and maybe even upgrading pip). These issues can be solved by removing all Python related packages and cleaning them also from the user directory (~/local/lib/python2.7/site-packages). And then reinstalling everything from the OS repo. Only those packages should be installed by pip (but not with sudo and not upgrading pip itself) which doesn't exist in the OS repository.

I just checked that all required packages can be installed in Ubuntu 16.04 LTS. I cannot test it with 14.04 LTS, but please note that version is no longer supported.

Who is online

Users browsing this forum: Corand, Google [Bot] and 157 guests