Requirements for custom_component not installing anymore

Hi,

I’ve created an custom components this winter and have been using it since. However some others are tying to install it without success. I’ve installed the latest version of HA on a vm in proxmox and I’m also not able to load the custom component anymore while I’ve got it working in the past.

In the manifest the a requirement for numpy and filterpy are added. It fails when installing filterpy but its seems that for numpy version 1.19 is installed and no later version is available?

Does somebody know what causes this issue and/or how to solve it?

thanx!

the manifest.json

{
  "domain": "multizone_thermostat",
  "name": "MultiZone thermostat",
  "documentation": ["https://github.com/vindaalex/multizone_thermostat","https://community.home-assistant.io/t/multizone-thermostat-incl-various-control-options/308898"],
  "requirements": ["numpy==1.20.0", "filterpy==1.4.4"],
  "dependencies": ["sensor", "switch"],
  "codeowners": ["vindaalex"],
  "version": "0.1"
}

changing "requirements": ["numpy>=1.20.0", "filterpy==1.4.4"], to "requirements": ["numpy", "filterpy"], does not work either.

system running HA

System Health

version: core-2021.10.6
installation_type: Home Assistant OS
dev: false
hassio: true
docker: true
user: root
virtualenv: false
python_version: 3.9.7
os_name: Linux
os_version: 5.10.70
arch: x86_64
timezone: UTC


logged_in: false
can_reach_cert_server: ok
can_reach_cloud_auth: ok
can_reach_cloud: ok


host_os: Home Assistant OS 6.5
update_channel: stable
supervisor_version: supervisor-2021.10.0
docker_version: 20.10.7
disk_total: 30.8 GB
disk_used: 1.8 GB
healthy: true
supported: true
board: ova
supervisor_api: ok
version_api: ok
installed_addons: Samba share (9.5.1)


dashboards: 1
resources: 0
mode: auto-gen

logged error

2021-10-22 23:39:09 ERROR (SyncWorker_4) [homeassistant.util.package] Unable to install package filterpy: ERROR: Command errored out with exit status 1:

command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-g1f1gwsv/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- 'wheel<0.37.0' 'setuptools<58.0.0' 'Cython>=0.29.18,<3.0' 'pybind11>=2.4.3,<2.7.0' pythran==0.9.11 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.8'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.9'"'"' and platform_python_implementation=='"'"'PyPy'"'"''

cwd: None

Complete output (262 lines):

Looking in links: https://wheels.home-assistant.io/alpine-3.14/amd64/

Ignoring numpy: markers 'python_version == "3.7" and platform_machine == "aarch64"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_machine == "aarch64"' don't match your environment

Ignoring numpy: markers 'python_version == "3.7" and platform_machine != "aarch64" and platform_python_implementation != "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_machine != "aarch64" and platform_python_implementation != "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.7" and platform_python_implementation == "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_python_implementation == "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.9" and platform_python_implementation == "PyPy"' don't match your environment

Collecting wheel<0.37.0

Using cached wheel-0.36.2-py2.py3-none-any.whl (35 kB)

Collecting setuptools<58.0.0

Using cached setuptools-57.5.0-py3-none-any.whl (819 kB)

Collecting Cython<3.0,>=0.29.18

Using cached Cython-0.29.24-py2.py3-none-any.whl (979 kB)

Collecting pybind11<2.7.0,>=2.4.3

Using cached pybind11-2.6.2-py2.py3-none-any.whl (191 kB)

Collecting pythran==0.9.11

Using cached pythran-0.9.11-py3-none-any.whl (4.2 MB)

Collecting numpy==1.19.3

Using cached numpy-1.19.3.zip (7.3 MB)

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 'done'

Preparing wheel metadata: started

Preparing wheel metadata: finished with status 'error'

ERROR: Command errored out with exit status 1:

command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp45s1vsfi

cwd: /tmp/pip-install-s6wu2ap6/numpy

Complete output (228 lines):

Running from numpy source directory.

setup.py:480: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates

run_build = parse_setuppy_commands()

Processing numpy/random/_bounded_integers.pxd.in

Processing numpy/random/mtrand.pyx

Processing numpy/random/_pcg64.pyx

Processing numpy/random/bit_generator.pyx

Processing numpy/random/_sfc64.pyx

Processing numpy/random/_common.pyx

Processing numpy/random/_bounded_integers.pyx.in

Processing numpy/random/_philox.pyx

Processing numpy/random/_generator.pyx

Processing numpy/random/_mt19937.pyx

Cythonizing sources

blas_opt_info:

blas_mkl_info:

customize UnixCCompiler

libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

blis_info:

libraries blis not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_info:

libraries openblas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_blas_threads_info:

Setting PTATLAS=ATLAS

libraries tatlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_blas_info:

libraries satlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_blas_threads_info:

Setting PTATLAS=ATLAS

libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_blas_info:

libraries f77blas,cblas,atlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

accelerate_info:

NOT AVAILABLE

/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Optimized (vendor) Blas libraries are not found.

Falls back to netlib Blas library which has worse performance.

A better performance should be easily gained by switching

Blas library.

if self._calc_info(blas):

blas_info:

libraries blas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Blas (http://www.netlib.org/blas/) libraries not found.

Directories to search for the libraries can be specified in the

numpy/distutils/site.cfg file (section [blas]) or by setting

the BLAS environment variable.

if self._calc_info(blas):

blas_src_info:

NOT AVAILABLE

/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Blas (http://www.netlib.org/blas/) sources not found.

Directories to search for the sources can be specified in the

numpy/distutils/site.cfg file (section [blas_src]) or by setting

the BLAS_SRC environment variable.

if self._calc_info(blas):

NOT AVAILABLE

non-existing path in 'numpy/distutils': 'site.cfg'

lapack_opt_info:

lapack_mkl_info:

libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_lapack_info:

libraries openblas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_clapack_info:

libraries openblas,lapack not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

flame_info:

libraries flame not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_threads_info:

Setting PTATLAS=ATLAS

libraries lapack_atlas not found in /usr/local/lib

libraries tatlas,tatlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries tatlas,tatlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_3_10_threads_info'>

NOT AVAILABLE

atlas_3_10_info:

libraries lapack_atlas not found in /usr/local/lib

libraries satlas,satlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries satlas,satlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_3_10_info'>

NOT AVAILABLE

atlas_threads_info:

Setting PTATLAS=ATLAS

libraries lapack_atlas not found in /usr/local/lib

libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries ptf77blas,ptcblas,atlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_threads_info'>

NOT AVAILABLE

atlas_info:

libraries lapack_atlas not found in /usr/local/lib

libraries f77blas,cblas,atlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries f77blas,cblas,atlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_info'>

NOT AVAILABLE

lapack_info:

libraries lapack not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/system_info.py:1748: UserWarning:

Lapack (http://www.netlib.org/lapack/) libraries not found.

Directories to search for the libraries can be specified in the

numpy/distutils/site.cfg file (section [lapack]) or by setting

the LAPACK environment variable.

return getattr(self, '_calc_info_{}'.format(name))()

lapack_src_info:

NOT AVAILABLE

/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/system_info.py:1748: UserWarning:

Lapack (http://www.netlib.org/lapack/) sources not found.

Directories to search for the sources can be specified in the

numpy/distutils/site.cfg file (section [lapack_src]) or by setting

the LAPACK_SRC environment variable.

return getattr(self, '_calc_info_{}'.format(name))()

NOT AVAILABLE

numpy_linalg_lapack_lite:

FOUND:

language = c

define_macros = [('HAVE_BLAS_ILP64', None), ('BLAS_SYMBOL_SUFFIX', '64_')]

/usr/local/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'define_macros'

warnings.warn(msg)

running dist_info

running build_src

build_src

building py_modules sources

creating build

creating build/src.linux-x86_64-3.9

creating build/src.linux-x86_64-3.9/numpy

creating build/src.linux-x86_64-3.9/numpy/distutils

building library "npymath" sources

Could not locate executable gfortran

Could not locate executable f95

Could not locate executable ifort

Could not locate executable ifc

Could not locate executable lf95

Could not locate executable pgfortran

Could not locate executable nvfortran

Could not locate executable f90

Could not locate executable f77

Could not locate executable fort

Could not locate executable efort

Could not locate executable efc

Could not locate executable g77

Could not locate executable g95

Could not locate executable pathf95

Could not locate executable nagfor

don't know how to compile Fortran code on platform 'posix'

Traceback (most recent call last):

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>

main()

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main

json_out['return_val'] = hook(**hook_input['kwargs'])

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel

return hook(metadata_directory, config_settings)

File "/tmp/pip-build-env-ere6u23x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 157, in prepare_metadata_for_build_wheel

self.run_setup()

File "/tmp/pip-build-env-ere6u23x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 248, in run_setup

super(_BuildMetaLegacyBackend,

File "/tmp/pip-build-env-ere6u23x/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 142, in run_setup

exec(compile(code, __file__, 'exec'), locals())

File "setup.py", line 508, in <module>

setup_package()

File "setup.py", line 500, in setup_package

setup(**metadata)

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/core.py", line 169, in setup

return old_setup(**new_attr)

File "/tmp/pip-build-env-ere6u23x/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 165, in setup

return distutils.core.setup(**attrs)

File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup

dist.run_commands()

File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands

self.run_command(cmd)

File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command

cmd_obj.run()

File "/tmp/pip-build-env-ere6u23x/overlay/lib/python3.9/site-packages/setuptools/command/dist_info.py", line 31, in run

egg_info.run()

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/command/egg_info.py", line 24, in run

self.run_command("build_src")

File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command

self.distribution.run_command(command)

File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command

cmd_obj.run()

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/command/build_src.py", line 144, in run

self.build_sources()

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/command/build_src.py", line 155, in build_sources

self.build_library_sources(*libname_info)

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/command/build_src.py", line 288, in build_library_sources

sources = self.generate_sources(sources, (lib_name, build_info))

File "/tmp/pip-install-s6wu2ap6/numpy/numpy/distutils/command/build_src.py", line 378, in generate_sources

source = func(extension, build_dir)

File "numpy/core/setup.py", line 663, in get_mathlib_info

raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

----------------------------------------

ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp45s1vsfi Check the logs for full command output.

WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.

You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

----------------------------------------

ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-g1f1gwsv/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- 'wheel<0.37.0' 'setuptools<58.0.0' 'Cython>=0.29.18,<3.0' 'pybind11>=2.4.3,<2.7.0' pythran==0.9.11 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.8'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.9'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' Check the logs for full command output.

WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.

You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

Try using "numpy==1.21.2" which is already pulled by HA
Older versions do not seem to exist as binary packaged anymore, so pip is trying to build it and fails because no C compiler is present.

Thanks for the suggestion but still not working and it gives exactly the same error.

The filterpy version 1.4.5 has also a requirements.txt with numpy and scipy. Could the numpy error be related to this requirement?

requirements in filterpy

pip install numpy
pip install scipy

Hi axax,

Pip needs to be pip3
Python 3.9 is running right?
Correct me if i’m wrong …

Sorry that I found the bug…

Greets
Remco

Hi Remco, great if you found the issue! Did got it working?

I’m/was not familiar with pip vs pip3, thanx for the heads-up. What I read about it, it says that using ‘pip’ on a python3 only installation is fine to use. It should behave the same as pip3. Is that right?

Hi. No sorry I did not find the solution…
I just wanted to try to suggest something.

Hope you find the solution soon.

Great thanx! Hope that this will solve all.

There seems to be little activity in filterpy from the author when looking to the authors replies in other PR’s and open issues. For the meantime would it work and is it allow for HA to fork the filterpy project, edit the requirements and update my requirements to my GitHub fork by using --extra-index-url 'my_github_url'

Not really sure of the syntax anymore, but yes, you can point a requirement to a github repository.

Did some tries but there seems to be something strange in HA. In the documentation of HA manifest manifest it shows

{  "requirements": ["git+https://github.com/issacg/pycoolmaster.git@except_connect#pycoolmaster==0.2.2"]
}

so in my code I added :

{
  "domain": "multizone_thermostat",
  "name": "MultiZone thermostat",
  "documentation": ["https://github.com/vindaalex/multizone_thermostat","https://community.home-assistant.io/t/multizone-thermostat-incl-various-control-options/308898"],
  "requirements": ["git+https://github.com/vindaalex/filterpy.git@fix_requirements#egg=filterpy"],
  "dependencies": ["sensor", "switch"],
  "codeowners": ["vindaalex"],
  "version": "0.2"
}

in requirements.txt of my fork of filterpy

numpy
scipy

also tried

numpy==1.21.2
scipy==1.7.1

when I do a reboot without a multizone_thermostat config

2021-10-25 15:36:25 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration multizone_thermostat which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

but when I add the config I get the error:

Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 98, in __init__
req = REQUIREMENT.parseString(requirement_string)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1654, in parseString
raise exc
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1644, in parseString
loc, tokens = self._parse( instring, 0 )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 3417, in parseImpl
loc, exprtokens = e._parse( instring, loc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1406, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 3205, in parseImpl
raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected stringEnd (at char 3), (line:1, col:4)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/util/package.py", line 38, in is_installed
pkg_resources.get_distribution(package)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 464, in get_distribution
dist = Requirement.parse(dist)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3139, in parse
req, = parse_requirements(s)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3084, in parse_requirements
yield Requirement(line)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3094, in __init__
super(Requirement, self).__init__(requirement_string)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 100, in __init__
raise InvalidRequirement(
pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'+https:/'": Expected stringEnd
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 98, in __init__
req = REQUIREMENT.parseString(requirement_string)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1654, in parseString
raise exc
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1644, in parseString
loc, tokens = self._parse( instring, 0 )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1402, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 3417, in parseImpl
loc, exprtokens = e._parse( instring, loc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 1406, in _parseNoCache
loc,tokens = self.parseImpl( instring, preloc, doActions )
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/pyparsing.py", line 3205, in parseImpl
raise ParseException(instring, loc, self.errmsg, self)
pkg_resources._vendor.pyparsing.ParseException: Expected stringEnd (at char 3), (line:1, col:4)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_protocol.py", line 422, in _handle_request
resp = await self._request_handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_app.py", line 499, in _handle
resp = await handler(request)
File "/usr/local/lib/python3.9/site-packages/aiohttp/web_middlewares.py", line 119, in impl
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 60, in security_filter_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 98, in forwarded_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 24, in request_context_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 78, in ban_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 144, in auth_middleware
return await handler(request)
File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 136, in handle
result = await result
File "/usr/src/homeassistant/homeassistant/components/config/core.py", line 29, in post
errors = await async_check_ha_config_file(request.app["hass"])
File "/usr/src/homeassistant/homeassistant/config.py", line 938, in async_check_ha_config_file
res = await check_config.async_check_ha_config_file(hass)
File "/usr/src/homeassistant/homeassistant/helpers/check_config.py", line 215, in async_check_ha_config_file
p_integration = await async_get_integration_with_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 88, in async_get_integration_with_requirements
await _async_process_integration(hass, integration, done)
File "/usr/src/homeassistant/homeassistant/requirements.py", line 104, in _async_process_integration
await async_process_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 168, in async_process_requirements
await _async_process_requirements(
File "/usr/src/homeassistant/homeassistant/requirements.py", line 188, in _async_process_requirements
if pkg_util.is_installed(req):
File "/usr/src/homeassistant/homeassistant/util/package.py", line 45, in is_installed
req = pkg_resources.Requirement.parse(urlparse(package).fragment)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3139, in parse
req, = parse_requirements(s)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3084, in parse_requirements
yield Requirement(line)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 3094, in __init__
super(Requirement, self).__init__(requirement_string)
File "/usr/local/lib/python3.9/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 100, in __init__
raise InvalidRequirement(
pkg_resources.extern.packaging.requirements.InvalidRequirement: Parse error at "'=filterp'": Expected stringEnd

when I add numpy and scipy to my requirements I get the error

2021-10-25 15:49:32 ERROR (SyncWorker_0) [homeassistant.util.package] Unable to install package scipy==1.7.1: ERROR: Command errored out with exit status 1:

command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-hooewc_1/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- 'wheel<0.37.0' 'setuptools<58.0.0' 'Cython>=0.29.18,<3.0' 'pybind11>=2.4.3,<2.7.0' pythran==0.9.11 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.8'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.9'"'"' and platform_python_implementation=='"'"'PyPy'"'"''

cwd: None

Complete output (262 lines):

Looking in links: https://wheels.home-assistant.io/alpine-3.14/amd64/

Ignoring numpy: markers 'python_version == "3.7" and platform_machine == "aarch64"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_machine == "aarch64"' don't match your environment

Ignoring numpy: markers 'python_version == "3.7" and platform_machine != "aarch64" and platform_python_implementation != "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_machine != "aarch64" and platform_python_implementation != "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.7" and platform_python_implementation == "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.8" and platform_python_implementation == "PyPy"' don't match your environment

Ignoring numpy: markers 'python_version == "3.9" and platform_python_implementation == "PyPy"' don't match your environment

Collecting wheel<0.37.0

Using cached wheel-0.36.2-py2.py3-none-any.whl (35 kB)

Collecting setuptools<58.0.0

Using cached setuptools-57.5.0-py3-none-any.whl (819 kB)

Collecting Cython<3.0,>=0.29.18

Using cached Cython-0.29.24-py2.py3-none-any.whl (979 kB)

Collecting pybind11<2.7.0,>=2.4.3

Using cached pybind11-2.6.2-py2.py3-none-any.whl (191 kB)

Collecting pythran==0.9.11

Using cached pythran-0.9.11-py3-none-any.whl (4.2 MB)

Collecting numpy==1.19.3

Using cached numpy-1.19.3.zip (7.3 MB)

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 'done'

Preparing wheel metadata: started

Preparing wheel metadata: finished with status 'error'

ERROR: Command errored out with exit status 1:

command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpzi83_3mq

cwd: /tmp/pip-install-k0r7kpby/numpy

Complete output (228 lines):

Running from numpy source directory.

setup.py:480: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates

run_build = parse_setuppy_commands()

Processing numpy/random/_bounded_integers.pxd.in

Processing numpy/random/mtrand.pyx

Processing numpy/random/_pcg64.pyx

Processing numpy/random/bit_generator.pyx

Processing numpy/random/_sfc64.pyx

Processing numpy/random/_common.pyx

Processing numpy/random/_bounded_integers.pyx.in

Processing numpy/random/_philox.pyx

Processing numpy/random/_generator.pyx

Processing numpy/random/_mt19937.pyx

Cythonizing sources

blas_opt_info:

blas_mkl_info:

customize UnixCCompiler

libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

blis_info:

libraries blis not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_info:

libraries openblas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_blas_threads_info:

Setting PTATLAS=ATLAS

libraries tatlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_blas_info:

libraries satlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_blas_threads_info:

Setting PTATLAS=ATLAS

libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_blas_info:

libraries f77blas,cblas,atlas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

accelerate_info:

NOT AVAILABLE

/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Optimized (vendor) Blas libraries are not found.

Falls back to netlib Blas library which has worse performance.

A better performance should be easily gained by switching

Blas library.

if self._calc_info(blas):

blas_info:

libraries blas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Blas (http://www.netlib.org/blas/) libraries not found.

Directories to search for the libraries can be specified in the

numpy/distutils/site.cfg file (section [blas]) or by setting

the BLAS environment variable.

if self._calc_info(blas):

blas_src_info:

NOT AVAILABLE

/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/system_info.py:1914: UserWarning:

Blas (http://www.netlib.org/blas/) sources not found.

Directories to search for the sources can be specified in the

numpy/distutils/site.cfg file (section [blas_src]) or by setting

the BLAS_SRC environment variable.

if self._calc_info(blas):

NOT AVAILABLE

non-existing path in 'numpy/distutils': 'site.cfg'

lapack_opt_info:

lapack_mkl_info:

libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_lapack_info:

libraries openblas not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

openblas_clapack_info:

libraries openblas,lapack not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

flame_info:

libraries flame not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

atlas_3_10_threads_info:

Setting PTATLAS=ATLAS

libraries lapack_atlas not found in /usr/local/lib

libraries tatlas,tatlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries tatlas,tatlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_3_10_threads_info'>

NOT AVAILABLE

atlas_3_10_info:

libraries lapack_atlas not found in /usr/local/lib

libraries satlas,satlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries satlas,satlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_3_10_info'>

NOT AVAILABLE

atlas_threads_info:

Setting PTATLAS=ATLAS

libraries lapack_atlas not found in /usr/local/lib

libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries ptf77blas,ptcblas,atlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_threads_info'>

NOT AVAILABLE

atlas_info:

libraries lapack_atlas not found in /usr/local/lib

libraries f77blas,cblas,atlas not found in /usr/local/lib

libraries lapack_atlas not found in /usr/lib

libraries f77blas,cblas,atlas not found in /usr/lib

<class 'numpy.distutils.system_info.atlas_info'>

NOT AVAILABLE

lapack_info:

libraries lapack not found in ['/usr/local/lib', '/usr/lib']

NOT AVAILABLE

/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/system_info.py:1748: UserWarning:

Lapack (http://www.netlib.org/lapack/) libraries not found.

Directories to search for the libraries can be specified in the

numpy/distutils/site.cfg file (section [lapack]) or by setting

the LAPACK environment variable.

return getattr(self, '_calc_info_{}'.format(name))()

lapack_src_info:

NOT AVAILABLE

/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/system_info.py:1748: UserWarning:

Lapack (http://www.netlib.org/lapack/) sources not found.

Directories to search for the sources can be specified in the

numpy/distutils/site.cfg file (section [lapack_src]) or by setting

the LAPACK_SRC environment variable.

return getattr(self, '_calc_info_{}'.format(name))()

NOT AVAILABLE

numpy_linalg_lapack_lite:

FOUND:

language = c

define_macros = [('HAVE_BLAS_ILP64', None), ('BLAS_SYMBOL_SUFFIX', '64_')]

/usr/local/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'define_macros'

warnings.warn(msg)

running dist_info

running build_src

build_src

building py_modules sources

creating build

creating build/src.linux-x86_64-3.9

creating build/src.linux-x86_64-3.9/numpy

creating build/src.linux-x86_64-3.9/numpy/distutils

building library "npymath" sources

Could not locate executable gfortran

Could not locate executable f95

Could not locate executable ifort

Could not locate executable ifc

Could not locate executable lf95

Could not locate executable pgfortran

Could not locate executable nvfortran

Could not locate executable f90

Could not locate executable f77

Could not locate executable fort

Could not locate executable efort

Could not locate executable efc

Could not locate executable g77

Could not locate executable g95

Could not locate executable pathf95

Could not locate executable nagfor

don't know how to compile Fortran code on platform 'posix'

Traceback (most recent call last):

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>

main()

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main

json_out['return_val'] = hook(**hook_input['kwargs'])

File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel

return hook(metadata_directory, config_settings)

File "/tmp/pip-build-env-569tl43d/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 157, in prepare_metadata_for_build_wheel

self.run_setup()

File "/tmp/pip-build-env-569tl43d/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 248, in run_setup

super(_BuildMetaLegacyBackend,

File "/tmp/pip-build-env-569tl43d/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 142, in run_setup

exec(compile(code, __file__, 'exec'), locals())

File "setup.py", line 508, in <module>

setup_package()

File "setup.py", line 500, in setup_package

setup(**metadata)

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/core.py", line 169, in setup

return old_setup(**new_attr)

File "/tmp/pip-build-env-569tl43d/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 165, in setup

return distutils.core.setup(**attrs)

File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup

dist.run_commands()

File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands

self.run_command(cmd)

File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command

cmd_obj.run()

File "/tmp/pip-build-env-569tl43d/overlay/lib/python3.9/site-packages/setuptools/command/dist_info.py", line 31, in run

egg_info.run()

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/command/egg_info.py", line 24, in run

self.run_command("build_src")

File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command

self.distribution.run_command(command)

File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command

cmd_obj.run()

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/command/build_src.py", line 144, in run

self.build_sources()

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/command/build_src.py", line 155, in build_sources

self.build_library_sources(*libname_info)

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/command/build_src.py", line 288, in build_library_sources

sources = self.generate_sources(sources, (lib_name, build_info))

File "/tmp/pip-install-k0r7kpby/numpy/numpy/distutils/command/build_src.py", line 378, in generate_sources

source = func(extension, build_dir)

File "numpy/core/setup.py", line 663, in get_mathlib_info

raise RuntimeError("Broken toolchain: cannot link a simple C program")

RuntimeError: Broken toolchain: cannot link a simple C program

----------------------------------------

ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpzi83_3mq Check the logs for full command output.

WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.

You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

----------------------------------------

ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-hooewc_1/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- 'wheel<0.37.0' 'setuptools<58.0.0' 'Cython>=0.29.18,<3.0' 'pybind11>=2.4.3,<2.7.0' pythran==0.9.11 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.8'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.9'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' Check the logs for full command output.

WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.

You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

so conclusion up to now:

  • “#egg=filterpy” seems not be a valid requirement option for HA
  • scipy can’t find installed numpy?

I remember I had a hard time using a git dependency as well, but I don’t have an example anymore.

Maybe try

Another evening of failed tries… Sovled the previous error by your suggestion.

Furthermore, I’ve made a minimal custom_component to check the loading of modules via requirements.

The numpy seems to instal without a problem. The issue arises when installing scipy. Via the standard way in requirements by scipy or scipy==x.x.x it fails as it seems to re-install a specific numpy version? I do not understand why it is missing the already installed numpy version. In the scipy repo I don’t see a specific fixed numpy version requirement.

In requirements I’ve tried a direct installation from github scipy repo for version 1.6.0 and 1.7.1. Also tried git+git://github.com and git+https://github.com variations.

"requirements": ["numpy","scipy @ git+git://github.com/scipy/scipy.git@ab1c0907fe9255582397db04592d6066745018d3#egg=scipy"],

and

"requirements": ["numpy","scipy @ git+git://github.com/scipy/scipy.git@47bb6febaa10658c72962b9615d5d5aa2513fa3a"],

and

"requirements": ["numpy","scipy @ git+https://github.com/scipy/scipy.git@ab1c0907fe9255582397db04592d6066745018d3#egg=scipy"],

the installation of scipy initiates as it shows in the log

2021-10-25 22:22:14 INFO (SyncWorker_5) [homeassistant.util.package] Attempting install of scipy @ git+git://github.com/scipy/scipy.git@ab1c0907fe9255582397db04592d6066745018d3#egg=scipy

but again the installation fails again with the same error. Could it be the old pip version

WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

complete error log

2021-10-25 22:22:14 INFO (SyncWorker_5) [homeassistant.util.package] Attempting install of scipy @ git+git://github.com/scipy/scipy.git@ab1c0907fe9255582397db04592d6066745018d3#egg=scipy
2021-10-25 22:23:58 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package scipy @ git+git://github.com/scipy/scipy.git@ab1c0907fe9255582397db04592d6066745018d3#egg=scipy: ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-b7spzurh/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- wheel 'setuptools<=51.0.0' 'Cython>=0.29.18' 'numpy==1.16.5; python_version=='"'"'3.7'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"'' 'numpy; python_version>='"'"'3.10'"'"'' 'pybind11>=2.4.3'
cwd: None
Complete output (254 lines):
Looking in links: https://wheels.home-assistant.io/alpine-3.14/amd64/
Ignoring numpy: markers 'python_version == "3.7"' don't match your environment
Ignoring numpy: markers 'python_version == "3.8"' don't match your environment
Ignoring numpy: markers 'python_version >= "3.10"' don't match your environment
Collecting wheel
Using cached wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Collecting setuptools<=51.0.0
Downloading setuptools-51.0.0-py3-none-any.whl (785 kB)
Collecting Cython>=0.29.18
Using cached Cython-0.29.24-py2.py3-none-any.whl (979 kB)
Collecting numpy==1.19.3
Using cached numpy-1.19.3.zip (7.3 MB)
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 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp64b_2zs3
cwd: /tmp/pip-install-fe1waxlu/numpy
Complete output (228 lines):
Running from numpy source directory.
setup.py:480: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
run_build = parse_setuppy_commands()
Processing numpy/random/_bounded_integers.pxd.in
Processing numpy/random/mtrand.pyx
Processing numpy/random/_pcg64.pyx
Processing numpy/random/bit_generator.pyx
Processing numpy/random/_sfc64.pyx
Processing numpy/random/_common.pyx
Processing numpy/random/_bounded_integers.pyx.in
Processing numpy/random/_philox.pyx
Processing numpy/random/_generator.pyx
Processing numpy/random/_mt19937.pyx
Cythonizing sources
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
blis_info:
libraries blis not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_info:
libraries openblas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_blas_threads_info:
Setting PTATLAS=ATLAS
libraries tatlas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_blas_info:
libraries satlas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_blas_threads_info:
Setting PTATLAS=ATLAS
libraries ptf77blas,ptcblas,atlas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_blas_info:
libraries f77blas,cblas,atlas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
accelerate_info:
NOT AVAILABLE
/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/system_info.py:1914: UserWarning:
Optimized (vendor) Blas libraries are not found.
Falls back to netlib Blas library which has worse performance.
A better performance should be easily gained by switching
Blas library.
if self._calc_info(blas):
blas_info:
libraries blas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/system_info.py:1914: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
if self._calc_info(blas):
blas_src_info:
NOT AVAILABLE
/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/system_info.py:1914: UserWarning:
Blas (http://www.netlib.org/blas/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [blas_src]) or by setting
the BLAS_SRC environment variable.
if self._calc_info(blas):
NOT AVAILABLE
non-existing path in 'numpy/distutils': 'site.cfg'
lapack_opt_info:
lapack_mkl_info:
libraries mkl_rt not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_lapack_info:
libraries openblas not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
openblas_clapack_info:
libraries openblas,lapack not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
flame_info:
libraries flame not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
atlas_3_10_threads_info:
Setting PTATLAS=ATLAS
libraries lapack_atlas not found in /usr/local/lib
libraries tatlas,tatlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries tatlas,tatlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
NOT AVAILABLE
atlas_3_10_info:
libraries lapack_atlas not found in /usr/local/lib
libraries satlas,satlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries satlas,satlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_3_10_info'>
NOT AVAILABLE
atlas_threads_info:
Setting PTATLAS=ATLAS
libraries lapack_atlas not found in /usr/local/lib
libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries ptf77blas,ptcblas,atlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_threads_info'>
NOT AVAILABLE
atlas_info:
libraries lapack_atlas not found in /usr/local/lib
libraries f77blas,cblas,atlas not found in /usr/local/lib
libraries lapack_atlas not found in /usr/lib
libraries f77blas,cblas,atlas not found in /usr/lib
<class 'numpy.distutils.system_info.atlas_info'>
NOT AVAILABLE
lapack_info:
libraries lapack not found in ['/usr/local/lib', '/usr/lib']
NOT AVAILABLE
/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/system_info.py:1748: UserWarning:
Lapack (http://www.netlib.org/lapack/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [lapack]) or by setting
the LAPACK environment variable.
return getattr(self, '_calc_info_{}'.format(name))()
lapack_src_info:
NOT AVAILABLE
/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/system_info.py:1748: UserWarning:
Lapack (http://www.netlib.org/lapack/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [lapack_src]) or by setting
the LAPACK_SRC environment variable.
return getattr(self, '_calc_info_{}'.format(name))()
NOT AVAILABLE
numpy_linalg_lapack_lite:
FOUND:
language = c
define_macros = [('HAVE_BLAS_ILP64', None), ('BLAS_SYMBOL_SUFFIX', '64_')]
/usr/local/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'define_macros'
warnings.warn(msg)
running dist_info
running build_src
build_src
building py_modules sources
creating build
creating build/src.linux-x86_64-3.9
creating build/src.linux-x86_64-3.9/numpy
creating build/src.linux-x86_64-3.9/numpy/distutils
building library "npymath" sources
Could not locate executable gfortran
Could not locate executable f95
Could not locate executable ifort
Could not locate executable ifc
Could not locate executable lf95
Could not locate executable pgfortran
Could not locate executable nvfortran
Could not locate executable f90
Could not locate executable f77
Could not locate executable fort
Could not locate executable efort
Could not locate executable efc
Could not locate executable g77
Could not locate executable g95
Could not locate executable pathf95
Could not locate executable nagfor
don't know how to compile Fortran code on platform 'posix'
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 280, in <module>
main()
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 263, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py", line 133, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "/tmp/pip-build-env-jz65bwww/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 157, in prepare_metadata_for_build_wheel
self.run_setup()
File "/tmp/pip-build-env-jz65bwww/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 248, in run_setup
super(_BuildMetaLegacyBackend,
File "/tmp/pip-build-env-jz65bwww/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 142, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 508, in <module>
setup_package()
File "setup.py", line 500, in setup_package
setup(**metadata)
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/core.py", line 169, in setup
return old_setup(**new_attr)
File "/tmp/pip-build-env-jz65bwww/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 165, in setup
return distutils.core.setup(**attrs)
File "/usr/local/lib/python3.9/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/local/lib/python3.9/distutils/dist.py", line 966, in run_commands
self.run_command(cmd)
File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-build-env-jz65bwww/overlay/lib/python3.9/site-packages/setuptools/command/dist_info.py", line 31, in run
egg_info.run()
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/command/egg_info.py", line 24, in run
self.run_command("build_src")
File "/usr/local/lib/python3.9/distutils/cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "/usr/local/lib/python3.9/distutils/dist.py", line 985, in run_command
cmd_obj.run()
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/command/build_src.py", line 144, in run
self.build_sources()
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/command/build_src.py", line 155, in build_sources
self.build_library_sources(*libname_info)
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/command/build_src.py", line 288, in build_library_sources
sources = self.generate_sources(sources, (lib_name, build_info))
File "/tmp/pip-install-fe1waxlu/numpy/numpy/distutils/command/build_src.py", line 378, in generate_sources
source = func(extension, build_dir)
File "numpy/core/setup.py", line 663, in get_mathlib_info
raise RuntimeError("Broken toolchain: cannot link a simple C program")
RuntimeError: Broken toolchain: cannot link a simple C program
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py prepare_metadata_for_build_wheel /tmp/tmp64b_2zs3 Check the logs for full command output.
WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.
----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-b7spzurh/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- wheel 'setuptools<=51.0.0' 'Cython>=0.29.18' 'numpy==1.16.5; python_version=='"'"'3.7'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"'' 'numpy; python_version>='"'"'3.10'"'"'' 'pybind11>=2.4.3' Check the logs for full command output.
WARNING: You are using pip version 20.2.4; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/local/bin/python3 -m pip install --upgrade pip' command.

Mmmm… Why not numpy==1.21.2 like above?

According to HACS publishing instructions here,
shouldn’t it be added to home-assistant/wheels-custom-integrations ?

If your integration requires other python libraries, your integration must be added to home-assistant/wheels-custom-integrations.

I’ve done some testing and the numpy requirement didn’t seem to be the problem. I made a very basic component where I use logging to display the numpy version. When I add just numpy it works.

{
  "domain": "test_it",
  "name": "test python",
  "documentation": [],
  "requirements": ["numpy"],
  "dependencies": [],
  "codeowners": ["vindaalex"],
  "iot_class": "local_polling",
  "version": "0.1"
}

And the log shows

2021-10-26 20:40:57 INFO (MainThread) [homeassistant.setup] Setting up test_it
2021-10-26 20:40:57 INFO (SyncWorker_3) [custom_components.test_it] np version: 1.21.2

But when I add the scipy requirements it fails. Specifying a version or direct link to github does not change the error.

2021-10-26 21:27:47 ERROR (SyncWorker_1) [homeassistant.util.package] Unable to install package scipy: ERROR: Command errored out with exit status 1:
command: /usr/local/bin/python3 /usr/local/lib/python3.9/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-xkannq42/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple --find-links https://wheels.home-assistant.io/alpine-3.14/amd64/ --prefer-binary -- 'wheel<0.37.0' 'setuptools<58.0.0' 'Cython>=0.29.18,<3.0' 'pybind11>=2.4.3,<2.7.0' pythran==0.9.11 'numpy==1.19.2; python_version=='"'"'3.7'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.19.2; python_version=='"'"'3.8'"'"' and platform_machine=='"'"'aarch64'"'"'' 'numpy==1.16.5; python_version=='"'"'3.7'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.17.3; python_version=='"'"'3.8'"'"' and platform_machine!='"'"'aarch64'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.19.3; python_version=='"'"'3.9'"'"' and platform_python_implementation != '"'"'PyPy'"'"'' 'numpy==1.20.0; python_version=='"'"'3.7'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.8'"'"' and platform_python_implementation=='"'"'PyPy'"'"'' 'numpy; python_version=='"'"'3.9'"'"' and platform_python_implementation=='"'"'PyPy'"'"''
cwd: None
....

As suggested in post wheels requirement I’ve added my component to wheels and waiting now for approval of the pull request.

Hope that this will solve it.

Thanks! I will give it a try.

I can find very limited information or background is available about this wheels part. Do you know since when this was required? I don’t remember that I had such issues installing it.

I see it’s a relatively new requirement. And, from what I could gather from other forums, it seems that now, HA is centralizing all the components requirements and installs them at startup. H

Also, it seems you cannot do without declaring requirements to wheels:

I’ve got it working again by replacing all scipy requiments and copying all revelant filterpy items directly in the code. Hope to do some testing this week and will upload it when works.

Hi Axax, that would be great.
Better to put in the code directly.