如何修复 PlatformIO ValueError: Invalid simple block ^0.4.6.4
问题:
你想构建具有如下库依赖的 PlatformIO 项目
platformio_lib_deps.ini
lib_deps =
nanopb/Nanopb@^0.4.6.4但你看到类似这样的错误消息
platformio_traceback.txt
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'解决方案
你使用的是库版本 0.4.6.4,但库版本说明符不支持 4 级版本(a.b.c.d)- 正确的版本说明符是仅使用前三位数字:a.b.c。在我们的示例中,这将是
platformio_lib_deps_fixed.ini
lib_deps =
nanopb/Nanopb@^0.4.6之后,你必须删除项目文件夹中的 .pio 目录以修复问题:
remove_pio_dir.sh
rm -rf .pio完成后,重新构建,问题将消失。
Check out similar posts by category:
ESP8266/ESP32, NanoPB, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow