Describe the bug
When using Python 3.12 on the host system, pio's platformio-build.py fails while installing pyyaml 6.0.0.
According to this issue, Python 3.12 requires pyyaml 6.0.1.
Manually changing version in platformio-build.py to 6.0.1 solves the issue.
Note that this version number is also hardcoded in install-deps.py and requires to be changed there too.
To Reproduce
Steps to reproduce the behavior:
Have Python 3.12 installed
Open a pio project containing a reference to Zephyr
In our case:
platform = ststm32@17.0.0
framework = zephyr
Which is Zephyr 3.4
(But same issue with a more recent ststm32 version and Zephyyr 3.5)
See errors in console.
Expected behavior
Not failing during platformio.ini parsing
Impact
The pio environment won't be setup correctly, thus the simple parsing on platformio.ini will fail. This prevent any compilation from that step.
Logs and console output
Collecting pyyaml==6.0.0
Using cached PyYAML-6.0.tar.gz (124 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'error'
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [54 lines of output]
running egg_info
writing lib/PyYAML.egg-info/PKG-INFO
writing dependency_links to lib/PyYAML.egg-info/dependency_links.txt
writing top-level names to lib/PyYAML.egg-info/top_level.txt
Traceback (most recent call last):
File "/opt/.platformio/penv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/opt/.platformio/penv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/.platformio/penv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 288, in <module>
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 104, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 184, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 200, in run_commands
dist.run_commands()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 967, in run_command
super().run_command(command)
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 321, in run
self.find_sources()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 329, in find_sources
mm.run()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 550, in run
self.add_defaults()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/command/egg_info.py", line 588, in add_defaults
sdist.add_defaults(self)
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/command/sdist.py", line 102, in add_defaults
super().add_defaults()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 250, in add_defaults
self._add_defaults_ext()
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/command/sdist.py", line 335, in _add_defaults_ext
self.filelist.extend(build_ext.get_source_files())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<string>", line 204, in get_source_files
File "/tmp/pip-build-env-c16oqwu6/overlay/lib/python3.12/site-packages/setuptools/_distutils/cmd.py", line 107, in __getattr__
raise AttributeError(attr)
AttributeError: cython_sources
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Traceback (most recent call last):
File "/opt/.platformio/packages/framework-zephyr/scripts/platformio/install-deps.py", line 25, in <module>
import yaml
ModuleNotFoundError: No module named 'yaml'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/.platformio/packages/framework-zephyr/scripts/platformio/install-deps.py", line 31, in <module>
import yaml
ModuleNotFoundError: No module named 'yaml'
Environment (please complete the following information):
OS: Linux
Toolchain: STSTM32 17.0.0
Commit SHA or Version used: Zephyr 3.4
Additional context
If fixed in the latest version, please also fix Zephyr 3.4 as we are still in the process of updating to newer versions.
Describe the bug When using Python 3.12 on the host system, pio's
platformio-build.py
fails while installing pyyaml 6.0.0. According to this issue, Python 3.12 requires pyyaml 6.0.1. Manually changing version inplatformio-build.py
to 6.0.1 solves the issue. Note that this version number is also hardcoded ininstall-deps.py
and requires to be changed there too.To Reproduce Steps to reproduce the behavior:
Which is Zephyr 3.4 (But same issue with a more recent ststm32 version and Zephyyr 3.5)
Expected behavior Not failing during
platformio.ini
parsingImpact The pio environment won't be setup correctly, thus the simple parsing on platformio.ini will fail. This prevent any compilation from that step.
Logs and console output
Environment (please complete the following information):
Additional context If fixed in the latest version, please also fix Zephyr 3.4 as we are still in the process of updating to newer versions.