Home Assistant Installation: Out of Memory | Dependencies failing



  • Hi again

    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.



  • 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.

    Thanks,
    Ka.



Looks like your connection to Community was lost, please wait while we try to reconnect.