Проблема:
Ви хочете зібрати ваш 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Коли це буде зроблено, перезберіть проєкт, і проблема зникне.
Дивіться схожі статті за категоріями:
ESP8266/ESP32 NanoPB PlatformIO
Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow