Home Assistant Installation: Out of Memory | Dependencies failing
This may be a question more appropiate for the Home Assistant forum, but they´re not answering me so far :(
I´m trying to install Home Assistant into my Omega2+. I managed to use a 2GB SD card as external storage, since the packages are too big to fit the chip memory.
First, I switched to the LEDE repos and installed python3, python3-dev and pip3 without problems. Then I had to upgrade setuptools manually before installing the homessistant package to avoid errors. So far, everything looks OK.
By the way, I didn´t use virtualenv as the HA documentation recommends because I couldn´t find a way to create another user (no useradd or something similar?). So I run the service as root.
The problem starts when I run th service for the first time. Home Assistant uses pip3 to install even more dependencies and I get an error when it tries to install SQLAlchemy 1.1.5.
INFO:homeassistant.util.package:Attempting install of sqlalchemy==1.1.5 Error [Errno 12] Out of memory while executing command python setup.py egg_info Exception: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 324, in run requirement_set.prepare_files(finder) File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 380, in prepare_files ignore_dependencies=self.ignore_dependencies)) File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 634, in _prepare_file abstract_dist.prep_for_dist() File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 129, in prep_for_dist self.req_to_install.run_egg_info() File "/usr/lib/python3.6/site-packages/pip/req/req_install.py", line 439, in run_egg_info command_desc='python setup.py egg_info') File "/usr/lib/python3.6/site-packages/pip/utils/__init__.py", line 667, in call_subprocess cwd=cwd, env=env) File "/usr/lib/python3.6/subprocess.py", line 707, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.6/subprocess.py", line 1260, in _execute_child restore_signals, start_new_session, preexec_fn) OSError: [Errno 12] Out of memory
This renders the recorder module offline.
I stopped the service and tried to install SQLAlchemy manually:
root@Omega-B195:~# pip3 install SQLAlchemy Collecting SQLAlchemy Downloading SQLAlchemy-1.1.5.tar.gz (5.1MB) 100% |████████████████████████████████| 5.1MB 9.0kB/s Installing collected packages: SQLAlchemy Running setup.py install for SQLAlchemy ... error Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-lmkqasx1/SQLAlchemy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-6nvt9mfw-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-lmkqasx1/SQLAlchemy/
It seems it fails attempting to install record, so...
root@Omega-B195:~# pip3 install record Collecting record Downloading Record-3.1.zip Collecting ExtensionClass>=4.1a1 (from record) Downloading ExtensionClass-4.2.1.tar.gz Installing collected packages: ExtensionClass, record Running setup.py install for ExtensionClass ... error Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9qbls4a3/ExtensionClass/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-zdngfx4u-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-9qbls4a3/ExtensionClass/
Then I gave it a try to ExtensionClass:
root@Omega-B195:~# pip3 install ExtensionClass Collecting ExtensionClass Using cached ExtensionClass-4.2.1.tar.gz Installing collected packages: ExtensionClass Running setup.py install for ExtensionClass ... error Command "/usr/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-0jagd4t0/ExtensionClass/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-0grsl2rc-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-0jagd4t0/ExtensionClass/
I´m puzzled. I thought I could avoid the out of memory by installing the dependencies in advance but I got a totally different error. Is it possible that these modules can´t be installed because I don´t have a c compiler installed? I have more experience with Java than Python.
If I create a swap file and run hass I get an Out of Disk Space error instead of an Out of Memory. Any other ideas to try?
Thanks in advance.
I know this is an old thread but I just got HomeAssistant running on my Omega2+ and wanted to follow up. I did the following;
- I factory reset my Omega2+ to latest software/console
- I extended the storage to use the SD card (3GB)
- I added a 250MB swap file to extend the memory
- I installed python 3, pip3 and upgraded pip3 setuptools
I also didn't use virtualenv. HomeAssistant installed and ran without any special changes and I could view the UI at http://omega-xxxx.local:8123/. It did take a very long time (20 mins) to install and run though.
Gian Carlo Salvati
This post is deleted!
@Stuart-Martin Maybe an old topic but still of interest to some ;)
Currently trying to do the same, did all those steps too (came up with some, found others) but struggling when doing pip3 install cryptography which is part of the pip3 install homeassistant process. Did you have any issues with libffi by any chance?
The idea is to have a micro-valid zwave secondary controller. Cheap and very small.