Requirements for custom_component not installing anymore

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.

Hello,
I would like to install the multizone_thermostat component.
I put it in custom_component and when I relaunch HA I have this in the log file:

2021-12-07 14:47:12 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

On the other hand, I have nothing in the integrations nor in the cards …

Do you have a lead for me?

I am on HA in docker in version 2021.11.5

Thank you for your help

This is a standard HA warning notification as you are adding a custom component which is not part of HA itself, thus use at own risk.

If you get this warning it means it was able to load the component :slight_smile: . You should now be able to configure a thermostat .

Thanks for the precision :slight_smile:

The problem is that, precisely, I don’t have a “multizone …” type integration and when I try to integrate a card, there is nothing that refers to “multizone …”

In integrations
image
image

In lovelace

And if i put a manual card

So ok, the component is loaded but nothing…

Thank you in advance for your help :slight_smile:

The thermostat at the moment can only be configured via yaml, configuration via the interface is not possible. I think you are trying to add a lovelace card to visualize it in HA? You first have configure a thermostat itself in yaml and then you could add a lovelace thermostat card which refers in your case to climate.on_off.

Yes, i think it’s m’y mistake. Thanks you for your help.
Tomorrow, i will try to create directly in climate.yaml

I’m getting the same error trying to integrate OpenAI and Pinecone.ai