Pyscript: Installing pvlib

I’m trying to install the pvlib module in pyscript by adding pvlib to requirements.txt. The full error message is not included, as it excedes the character limit, however it seems likely to be related to the last bit about h5py.

Any thoughts on how to proceed from here?

Thanks!

Operation not permitted help: `h5py` (v3.12.1) was included because `pvlib` (v0.11.2) depends on `h5py`
Logger: homeassistant.util.package
Source: util/package.py:159
First occurred: 1:47:21 PM (7 occurrences)
Last logged: 2:20:27 PM

Unable to install package pvlib: × Failed to download and build `h5py==3.12.1` ╰─▶ Build backend failed to build wheel through `build_wheel` (exit status: 1) [stdout] running bdist_wheel running build running build_py creating build/lib.linux-armv7l-cpython-313/h5py copying h5py/__init__.py -> build/lib.linux-armv7l-cpython-313/h5py copying h5py/h5py_warnings.py -> build/lib.linux-armv7l-cpython-313/h5py copying h5py/ipy_completer.py -> build/lib.linux-armv7l-cpython-313/h5py copying h5py/version.py -> build/lib.linux-armv7l-cpython-313/h5py creating build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/__init__.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/attrs.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/base.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/compat.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/dataset.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/datatype.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/dims.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/files.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/filters.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/group.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/selections.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/selections2.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl copying h5py/_hl/vds.py -> build/lib.linux-armv7l-cpython-313/h5py/_hl creating build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/__init__.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/common.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/conftest.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_attribute_create.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_attrs.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_attrs_data.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_base.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_big_endian_file.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_completions.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dataset.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dataset_getitem.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dataset_swmr.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_datatype.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dimension_scales.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dims_dimensionproxy.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_dtype.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_errors.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_file.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_file2.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_file_alignment.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_file_image.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_filters.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_group.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5d_direct_chunk.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5f.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5o.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5p.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5pl.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5t.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_h5z.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_objects.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_ros3.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_selections.py -> build/lib.linux-armv7l-cpython-313/h5py/tests copying h5py/tests/test_slicing.py -> build/lib.linux-armv7l-cpython-313/h5py/tests creating build/lib.linux-armv7l-cpython-313/h5py/tests/data_files copying h5py/tests/data_files/__init__.py -> build/lib.linux-armv7l-cpython-313/h5py/tests/data_files creating build/lib.linux-armv7l-cpython-313/h5py/tests/test_vds copying h5py/tests/test_vds/__init__.py -> build/lib.linux-armv7l-cpython-313/h5py/tests/test_vds copying h5py/tests/test_vds/test_highlevel_vds.py -> build/lib.linux-armv7l-cpython-313/h5py/tests/test_vds copying h5py/tests/test_vds/test_lowlevel_vds.py -> build/lib.linux-armv7l-cpython-313/h5py/tests/test_vds copying h5py/tests/test_vds/test_virtual_source.py -> build/lib.linux-armv7l-cpython-313/h5py/tests/test_vds copying h5py/tests/data_files/vlen_string_dset.h5 -> build/lib.linux-armv7l-cpython-313/h5py/tests/data_files copying h5py/tests/data_files/vlen_string_dset_utc.h5 -> build/lib.linux-armv7l-cpython-313/h5py/tests/data_files copying h5py/tests/data_files/vlen_string_s390x.h5 -> build/lib.linux-armv7l-cpython-313/h5py/tests/data_files running build_ext [stderr] Traceback (most recent call last): File "<string>", line 11, in <module> wheel_filename = backend.build_wheel("/tmp/.tmphM8nr4/builds-v0/.tmpYMcdgw", {}, None) File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/build_meta.py", line 435, in build_wheel return _build(['bdist_wheel']) File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/build_meta.py", line 426, in _build return self._build_with_temp_dir( ~~~~~~~~~~~~~~~~~~~~~~~~~^ cmd, ^^^^ ...<3 lines>... self._arbitrary_args(config_settings), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/build_meta.py", line 407, in _build_with_temp_dir self.run_setup() ~~~~~~~~~~~~~~^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/build_meta.py", line 320, in run_setup exec(code, locals()) ~~~~^^^^^^^^^^^^^^^^ File "<string>", line 69, in <module> File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/__init__.py", line 117, in setup return distutils.core.setup(**attrs) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 186, in setup return run_commands(dist) File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/core.py", line 202, in run_commands dist.run_commands() ~~~~~~~~~~~~~~~~~^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 983, in run_commands self.run_command(cmd) ~~~~~~~~~~~~~~~~^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/dist.py", line 999, in run_command super().run_command(command) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command cmd_obj.run() ~~~~~~~~~~~^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/command/bdist_wheel.py", line 379, in run self.run_command("build") ~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 339, in run_command self.distribution.run_command(command) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/dist.py", line 999, in run_command super().run_command(command) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command cmd_obj.run() ~~~~~~~~~~~^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/command/build.py", line 136, in run self.run_command(cmd_name) ~~~~~~~~~~~~~~~~^^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/cmd.py", line 339, in run_command self.distribution.run_command(command) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/dist.py", line 999, in run_command super().run_command(command) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^ File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/setuptools/_distutils/dist.py", line 1002, in run_command cmd_obj.run() ~~~~~~~~~~~^^ File "/tmp/.tmphM8nr4/sdists-v6/pypi/h5py/3.12.1/HelRQ7BI9r4C4BUH3GvBz/src/setup_build.py", line 129, in run from Cython.Build import cythonize File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/Cython/Build/__init__.py", line 1, in <module> from .Dependencies import cythonize File "/tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/Cython/Build/Dependencies.py", line 42, in <module> from .. import Utils ImportError: Error loading shared library /tmp/.tmphM8nr4/builds-v0/.tmpkrssQS/lib/python3.13/site-packages/Cython/Utils.cpython-313-arm-linux-musleabihf.so: Operation not permitted help: `h5py` (v3.12.1) was included because `pvlib` (v0.11.2) depends on `h5py`

Hi Steve,

If you are using HAOS, you cannot add packages to it directly. It is a controlled OS.

It you do figure out a way to add this, it will be removed when the next version installs.

You will need to build an add-on, a custom-integration, or find an existing one of these to use instead.

Oh interesting! I guess ill have to investigate that option. Thanks!