Problem:
You want to build your PlatformIO project which has library dependency like
lib_deps = nanopb/Nanopb@^0.4.6.4
but you see an error message like
Error: Traceback (most recent call last): File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/__main__.py", line 102, in main cli() # pylint: disable=no-value-for-parameter File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/cli.py", line 71, in invoke return super().invoke(ctx) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/click/decorators.py", line 26, in new_func return f(get_current_context(), *args, **kwargs) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/run/cli.py", line 144, in cli process_env( File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/run/cli.py", line 201, in process_env result = {"env": name, "duration": time(), "succeeded": ep.process()} File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/run/processor.py", line 83, in process install_project_env_dependencies( File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/commands/install.py", line 132, in install_project_env_dependencies _install_project_env_libraries(project_env, options), File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/commands/install.py", line 241, in _install_project_env_libraries spec = PackageSpec(library) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/meta.py", line 184, in __init__ self._parse(self.raw) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/meta.py", line 291, in _parse raw = parser(raw) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/meta.py", line 316, in _parse_requirements self.requirements = tokens[1].strip() File "/home/uli/.platformio/penv/lib/python3.10/site-packages/platformio/package/meta.py", line 231, in requirements else semantic_version.SimpleSpec(str(value)) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/semantic_version/base.py", line 647, in __init__ self.clause = self._parse_to_clause(expression) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/semantic_version/base.py", line 1043, in _parse_to_clause return cls.Parser.parse(expression) File "/home/uli/.platformio/penv/lib/python3.10/site-packages/semantic_version/base.py", line 1063, in parse raise ValueError("Invalid simple block %r" % block) ValueError: Invalid simple block '^0.4.6.4'
Solution:
You are using the library version 0.4.6.4
but the library version specifier does not support versions with 4 levels (a.b.c.d
) – the correct version specifier is just using the first three digits: a.b.c
. In our example, this would be
lib_deps = nanopb/Nanopb@^0.4.6
After that, you have to delete your .pio
directory in the project folder in order to fix the issue:
rm -rf .pio
When that is done, rebuild and the issue will be gone.