platformio / platformio-home

PlatformIO Home
https://docs.platformio.org/page/home/index.html
Apache License 2.0
95 stars 62 forks source link

Could not import project #5512

Closed nguyenhoangvien closed 1 year ago

nguyenhoangvien commented 1 year ago

PIO Core Call Error: "Resolving disco_f100rb dependencies...\nAlready up-to-date.\nUpdating metadata for the vscode IDE...\n\n\nError: Processing disco_f100rb (platform: ststm32; framework: mbed; board: disco_f100rb)\n--------------------------------------------------------------------------------\nVerbose mode can be enabled via -v, --verbose option\nCONFIGURATION: https://docs.platformio.org/page/boards/ststm32/disco_f100rb.html\nPLATFORM: ST STM32 (15.4.1) > ST STM32VLDISCOVERY\nHARDWARE: STM32F100RBT6 24MHz, 8KB RAM, 128KB Flash\nDEBUG: Current (stlink) On-board (stlink) External (blackmagic, cmsis-dap, jlink)\nPACKAGES: \n - framework-mbed @ 6.51506.201227 (5.15.6) \n - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)\nImportError: cannot import name 'Iterable' from 'collections' (/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/collections/init.py):\n File \"/Users/hoangvien/.platformio/penv/lib/python3.10/site-packages/platformio/builder/main.py\", line 187:\n env.SConscript(\"$BUILD_SCRIPT\")\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 597:\n return _SConscript(self.fs, *files, subst_kw)\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 285:\n exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)\n File \"/Users/hoangvien/.platformio/platforms/ststm32/builder/main.py\", line 120:\n target_elf = env.BuildProgram()\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Util.py\", line 737:\n return self.method(*nargs, *kwargs)\n File \"/Users/hoangvien/.platformio/penv/lib/python3.10/site-packages/platformio/builder/tools/piobuild.py\", line 60:\n env.ProcessProgramDeps()\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Util.py\", line 737:\n return self.method(nargs, kwargs)\n File \"/Users/hoangvien/.platformio/penv/lib/python3.10/site-packages/platformio/builder/tools/piobuild.py\", line 120:\n env.BuildFrameworks(env.get(\"PIOFRAMEWORK\"))\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Util.py\", line 737:\n return self.method(*nargs, kwargs)\n File \"/Users/hoangvien/.platformio/penv/lib/python3.10/site-packages/platformio/builder/tools/piobuild.py\", line 331:\n SConscript(env.GetFrameworkScript(name), exports=\"env\")\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 660:\n return method(*args, *kw)\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 597:\n return _SConscript(self.fs, files, subst_kw)\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 285:\n exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)\n File \"/Users/hoangvien/.platformio/platforms/ststm32/builder/frameworks/mbed.py\", line 35:\n SConscript(\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 660:\n return method(*args, *kw)\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 597:\n return _SConscript(self.fs, files, **subst_kw)\n File \"/Users/hoangvien/.platformio/packages/tool-scons/scons-local-4.4.0/SCons/Script/SConscript.py\", line 285:\n exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/platformio-build.py\", line 45:\n from pio_mbed_adapter import PlatformioMbedAdapter\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/pio_mbed_adapter.py\", line 23:\n from tools.build_api import prepare_toolchain, UPDATE_WHITELIST\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/tools/build_api.py\", line 47:\n from .libraries import Library\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/tools/libraries.py\", line 24:\n from tools.tests import TEST_MBED_LIB, DEFAULT_SUPPORT\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/tools/tests.py\", line 17:\n from past.builtins import cmp\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/package_deps/py3/past/builtins/init.py\", line 43:\n from past.builtins.noniterators import (filter, map, range, reduce, zip)\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/package_deps/py3/past/builtins/noniterators.py\", line 24:\n from past.types import basestring\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/package_deps/py3/past/types/init.py\", line 25:\n from .oldstr import oldstr\n File \"/Users/hoangvien/.platformio/packages/framework-mbed/platformio/package_deps/py3/past/types/oldstr.py\", line 5:\n from collections import Iterable\n========================== [FAILED] Took 1.85 seconds ==========================\n\nEnvironment Status Duration\n------------- -------- ------------\ndisco_f100rb FAILED 00:00:01.852\n==================== 1 failed, 0 succeeded in 00:00:01.852 ===================="

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. Please provide more details or it will be closed if no further activity occurs. Thank you for your contributions.

sp3bbt commented 1 year ago

Hi,

I just faced the same problem while installing mbed environment for STM32 BluePill.

I'm using Ubuntu 22.04 with Python3 set as default.

I've found that this problem is related to lack of abstract classes inside collections package. They are instead in collections.abc.

I've found that in several files there is a support for that, so I copy similar code into few other places:

import sys
PY2 = sys.version_info[0] == 2

if not PY2:
    from collections.abc import MutableMapping
else:
    from collections import MutableMapping

That's the list of files within ~/.platformio/packages/framework-mbed/platformio/package_deps/py3 I've changed/used :

past/types/oldstr.py
elftools/construct/lib/container.py markupsafe/_compat.py
jsonschema/compat.py
past/builtins/misc.py
future/backports/misc.py

Слава Україні!