Raspberry Pi Installation Issues


#1

I’m trying to install my new Raspberry Pi3/Atom adapter as described here: https://www.helium.com/dev/hardware-libraries/raspberry-pi and I’m getting an issue on the sudo pip install . command telling me that helium-client.h can’t be found.

Here is the output from the above command:

Processing /home/pi/helium-client-python
Building wheels for collected packages: helium-client
  Running setup.py bdist_wheel for helium-client: started
  Running setup.py bdist_wheel for helium-client: finished with status 'error'
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-khdQff-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpUbeSZVpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv7l-2.7
  creating build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/__init__.py -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/_version.py -> build/lib.linux-armv7l-2.7/helium_client
  running egg_info
  creating helium_client.egg-info
  writing requirements to helium_client.egg-info/requires.txt
  writing helium_client.egg-info/PKG-INFO
  writing top-level names to helium_client.egg-info/top_level.txt
  writing dependency_links to helium_client.egg-info/dependency_links.txt
  writing manifest file 'helium_client.egg-info/SOURCES.txt'
  reading manifest file 'helium_client.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*.so' found under directory 'helium_client'
  warning: no previously-included files matching '*.dll' found under directory 'helium_client'
  writing manifest file 'helium_client.egg-info/SOURCES.txt'
  copying helium_client/_helium.c -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/_helium.pxd -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/_helium.pyx -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/_serial.c -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/_serial.h -> build/lib.linux-armv7l-2.7/helium_client
  copying helium_client/helium_client.c -> build/lib.linux-armv7l-2.7/helium_client
  UPDATING build/lib.linux-armv7l-2.7/helium_client/_version.py
  set build/lib.linux-armv7l-2.7/helium_client/_version.py to '1.5.0'
  running build_ext
  building 'helium_client._helium' extension
  creating build/temp.linux-armv7l-2.7
  creating build/temp.linux-armv7l-2.7/helium_client
  creating build/temp.linux-armv7l-2.7/helium_client/helium-client
  creating build/temp.linux-armv7l-2.7/helium_client/helium-client/cauterize
  arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-9xgeTe/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihelium_client/helium-client -I/usr/include/python2.7 -c helium_client/_helium.c -o build/temp.linux-armv7l-2.7/helium_client/_helium.o -std=gnu99 -Werror
  helium_client/_helium.c:433:27: fatal error: helium-client.h: No such file or directory
   #include "helium-client.h"
                             ^
  compilation terminated.
  error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for helium-client
  Running setup.py clean for helium-client
Failed to build helium-client
Installing collected packages: helium-client
  Running setup.py install for helium-client: started
    Running setup.py install for helium-client: finished with status 'error'
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-khdQff-build/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-PjEfzL-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-2.7
    creating build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/__init__.py -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/_version.py -> build/lib.linux-armv7l-2.7/helium_client
    running egg_info
    writing requirements to helium_client.egg-info/requires.txt
    writing helium_client.egg-info/PKG-INFO
    writing top-level names to helium_client.egg-info/top_level.txt
    writing dependency_links to helium_client.egg-info/dependency_links.txt
    reading manifest file 'helium_client.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*.so' found under directory 'helium_client'
    warning: no previously-included files matching '*.dll' found under directory 'helium_client'
    writing manifest file 'helium_client.egg-info/SOURCES.txt'
    copying helium_client/_helium.c -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/_helium.pxd -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/_helium.pyx -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/_serial.c -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/_serial.h -> build/lib.linux-armv7l-2.7/helium_client
    copying helium_client/helium_client.c -> build/lib.linux-armv7l-2.7/helium_client
    UPDATING build/lib.linux-armv7l-2.7/helium_client/_version.py
    set build/lib.linux-armv7l-2.7/helium_client/_version.py to '1.5.0'
    running build_ext
    building 'helium_client._helium' extension
    creating build/temp.linux-armv7l-2.7
    creating build/temp.linux-armv7l-2.7/helium_client
    creating build/temp.linux-armv7l-2.7/helium_client/helium-client
    creating build/temp.linux-armv7l-2.7/helium_client/helium-client/cauterize
    arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-9xgeTe/python2.7-2.7.13=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Ihelium_client/helium-client -I/usr/include/python2.7 -c helium_client/_helium.c -o build/temp.linux-armv7l-2.7/helium_client/_helium.o -std=gnu99 -Werror
    helium_client/_helium.c:433:27: fatal error: helium-client.h: No such file or directory
     #include "helium-client.h"
                               ^
    compilation terminated.
    error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-khdQff-build/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-PjEfzL-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-khdQff-build/

#2

Hi @chuck.williams. You ran into an error in the documentation. If you use “Method 1” you need to check out the submodules as well.

If you’ve already checked out the repository you can update the git submodules using:

git submodule update --init --recursive

“Method 2” is a lot quicker since you can pip install without having to check out source code.

We’ll get the guide updated so others using Method 1 don’t run into the same problem.

Let us know if that works!


#3

Where is Method 2 documented?

Chuck


#4

https://www.helium.com/dev/hardware-libraries/raspberry-pi

Look for Method 2: From PyPi in the Installing the Helium Python Client Library section.

Apologies for the snafu in the documentation of Method 1. We’ll push out a fix shortly.


#5

ok, so I’m blind! It’s all installed. Having an issue getting my Element to connect right now…


#6

Excellent! Perhaps open up a separate topic for your element issues if you can’t get it to connect?