Raspbian-stretch-full 2018-11-11 pip install homeassistant fails

I installed 2018-11-13-raspbian-stretch-full.img to my 32GB SDcard and booted, went through initial configuration steps (including update), enabled SSH and disabled GUI and rebooted. Then I plugged in my Nortek GoControl USB dongle and /var/log/messages confirmed that /dev/ttyUSB1 and /dev/ttyUSB2 were created.

I SSH’d into the Raspi machine, ran “pip install homeassistant”, and the first time it failed with the following:

homeassistant requires Python ‘>=3.5.3’ but the running Python is 2.7.13

(although python3.5 was also installed). I changed the symlink for python to the 3.5 version and tried again. This time it got further, but failed with the following:

Collecting aiohttp==3.5.4 (from homeassistant)
Exception:
Traceback (most recent call last):
File “/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 594, in urlopen
chunked=chunked)
File “/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 391, in _make_request
six.raise_from(e, None)
File “”, line 2, in raise_from
File “/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 387, in _make_request
httplib_response = conn.getresponse()
File “/usr/lib/python3.5/http/client.py”, line 1198, in getresponse
response.begin()
File “/usr/lib/python3.5/http/client.py”, line 297, in begin
version, status, reason = self._read_status()
File “/usr/lib/python3.5/http/client.py”, line 266, in _read_status
raise RemoteDisconnected(“Remote end closed connection without”
http.client.RemoteDisconnected: Remote end closed connection without response

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/pip/basecommand.py”, line 215, in main
status = self.run(options, args)
File “/usr/lib/python3/dist-packages/pip/commands/install.py”, line 353, in run
wb.build(autobuilding=True)
File “/usr/lib/python3/dist-packages/pip/wheel.py”, line 749, in build
self.requirement_set.prepare_files(self.finder)
File “/usr/lib/python3/dist-packages/pip/req/req_set.py”, line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File “/usr/lib/python3/dist-packages/pip/req/req_set.py”, line 554, in _prepare_file
require_hashes
File “/usr/lib/python3/dist-packages/pip/req/req_install.py”, line 278, in populate_link
self.link = finder.find_requirement(self, upgrade)
File “/usr/lib/python3/dist-packages/pip/index.py”, line 465, in find_requirement
all_candidates = self.find_all_candidates(req.name)
File “/usr/lib/python3/dist-packages/pip/index.py”, line 423, in find_all_candidates
for page in self._get_pages(url_locations, project_name):
File “/usr/lib/python3/dist-packages/pip/index.py”, line 568, in _get_pages
page = self._get_page(location)
File “/usr/lib/python3/dist-packages/pip/index.py”, line 683, in _get_page
return HTMLPage.get_page(link, session=self.session)
File “/usr/lib/python3/dist-packages/pip/index.py”, line 792, in get_page
“Cache-Control”: “max-age=600”,
File “/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py”, line 501, in get
return self.request(‘GET’, url, **kwargs)
File “/usr/lib/python3/dist-packages/pip/download.py”, line 386, in request
return super(PipSession, self).request(method, url, *args, **kwargs)
File “/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py”, line 488, in request
resp = self.send(prep, **send_kwargs)
File “/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/sessions.py”, line 609, in send
r = adapter.send(request, **kwargs)
File “/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py”, line 47, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File “/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/adapters.py”, line 423, in send
timeout=timeout
File “/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 643, in urlopen
_stacktrace=sys.exc_info()[2])
File “/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py”, line 315, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: ‘Retry’ and ‘int’

=====
Can anyone point me to the solution to this issue? Thank you.

Far easier to use Docker. I would recommend you install Docker and pull the HA image for your device form here…

https://hub.docker.com/u/homeassistant

This is how to install on a raspberry pi manually

1 Like

Thank you very much, this is what I was looking for.

However, “pip3 install homeassistant” failed at the following point:

Downloading https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl (158kB)
100% |████████████████████████████████| 163kB 286kB/s
Collecting ruamel.yaml==0.15.88 (from homeassistant)
Exception:
Traceback (most recent call last):
File “/srv/homeassistant/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 594, in urlopen
chunked=chunked)
File “/srv/homeassistant/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 391, in _make_request
six.raise_from(e, None)
[ … ]
File “/srv/homeassistant/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/connectionpool.py”, line 643, in urlopen
_stacktrace=sys.exc_info()[2])
File “/srv/homeassistant/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/util/retry.py”, line 315, in increment
total -= 1
TypeError: unsupported operand type(s) for -=: ‘Retry’ and ‘int’

Perhaps the install script needs some tweaking for Raspian Stretch Lite? Is there an earlier Lite image that this process does work with?

As it says in the first sentence of the page, it is intended to run on Raspbian Lite.

The first thing to check is that you are using pythion 3 in the virtual environment.

$ sudo -u homeassistant -H -s
$ source /srv/homeassistant/bin/activate
$ python --version

If that returns a version >= 3.5 it should be ok.

Then I would try an earlier version oh HA, say

pip3 install homeassistant=0.89.2

@gpbenton, thank you for the suggestion. The equal sign should be doubled (homeassistant==0.89.2) or it gives an error, but when I corrected that, it installed correctly.

BTW, I did install Raspbian Lite (the latest version, “stretch”) as the document you sent me suggested, but trying to install the current version of homeassistant on it resulted in the error I posted.

Thank you, again. I look forward to learning how to use this software and to making contributions to this group.

Trying to install previous version like 0.89.2 didn’t help in my case, still had the same problem.
Had to upgrade pip3.

$ pip3 install --upgrade pip

That did the trick for me, after that I was able to install homeassistant latest with no problem.
Note that I have upgraded pip3 within the venv to avoid trouble for non HA related packages.

1 Like

You save me a lot of hours, thanks!

I would recommend using the Raspbian Buster image, as Stretch has an older version of Python :slight_smile: