Error installing influxdb3-python

I am trying to install the influxdb3-python package, but the associated pyarrow package installation fails.
Could NOT find Python3 (missing: Python3_NumPy_INCLUDE_DIRS NumPy) (found
version “3.9.2”)
The system I am attempting this on is a Raspberry Pi 4 running the latest software. There should be nothing very special with the environment.
I have installed numpy, and that is working.
I have done apt-get update and upgrade. I have the newest version of pip3. I did uninstall Python2 to have just one version of python installed. Still, the proper directories are not found by make.
I have not come up with a way to pass explicit directory parameters to the cmake process as that is being called by pip3.

I find references of people experiencing similar problems with cmake not finding numpy and/or the right python version, but none of the proposed solutions have worked. I am now totally stuck on this issue. Any help is appreciated.

Unfortunately pasting the console output or attaching a file does not seem to work here.

Hi and welcome.

I’ve updated your profile to enable more options. Please edit your post or reply with more info and I’ll try to help

That’s what I’d suggest to do as well. An alternative if you know where it’s looking and where the files actually do reside might be to use a symlink so the default make options can find where the files are.

Here is the full console output as an attachment. The problem is with the installation of pyarrow. What is unclear for me is why this does not work out of the box with pip install as there should be nothing exotic with my python environment.
Output.txt (31.7 KB)

At a guess, whoever wrote the make file for this probably didn’t have access to an arm arch device to test on and hardcoded some stuff. Its bit annoying but it’s understandable why it happens… (assuming that is the cause here)

I spotted this at the bottom, any clues hiding inside cmakeOutput?

 See also "/tmp/pip-install-5n5t7gkv/pyarrow_c5847a062e8d4e3f987cecfbbf0c370f/build/temp.linux-armv7l-cpython-39/CMakeFiles/CMakeOutput.log".
      error: command '/usr/bin/cmake' failed with exit code 1

if there any ‘make clean’ options provided , run those in case there is something incorrect from earlier (you mentioned there was a python2 installed earlier )

The final error mentions a 3.9.2 , while the rest of your output only has 3.9 - again unlikely but that could be something else that may be the cause if a missing dependency

There is no such CMakeOutput.log file on /tmp, and no pip-install… directory. The files might get cleaned up as the make subprocess initiated by pip exits. My python version is indeed 3.9.2. The numpy seems to be located in /usr/lib/python3/dist-packages/numpy.
It indeed seems that the makefile is faulty, but if so, I would expect that it would fail for everyone attempting the install on a similar platform. As said, what comes to the python configuration, it should be completely standard for RPi4.
Is there a forum for pyarrow where I could raise this issue?

Not sure if you’ve already found these. If not, hopefully they help

https://arrow.apache.org/docs/dev/developers/python.html#using-system-and-bundled-dependencies

Someone else had some trouble getting it to compile on rpi, unclear if they managed to figure it out.

Different thread , maybe related/worth checking if similar for you?

Your final suggestion to look at CMAKE_PREFIX_PATH helped me finish the job because I found that $CMAKE_PREFIX_PATH wasn’t pointing anywhere even after I had run the code to define it…

I’m just about out of my depth at this point :upside_down_face:

If you do manage to figure this one out, please pop back in and add a reply with whatever steps were needed to get it working.

Hi,
I haven’t had time to pursue the issue further. Basically I think it is the wrong method to solve the issue of pip not working by going around it by manually compiling a complex C++ framework. I also experience there is a risk that this approach for dealing with one python package could lead to problems with pip updates down the line.
What I’m trying to achieve is to insert some data to InfluxDB cloud from python code in a simple manner as I am already doing to the InfluxDB instance running locally on the Raspberry PI. What we ended up with here is far from simple. Can I insert the data with line syntax (HTTP) and omit the malfunctioning influxdb3-python package alltogether until someone has fixed the installation?

Hi Kim,

I ran into the same problem with an RPi3. My fallback is simple, I use Pythons’ requests to access the InfluxDB HTTP REST API (v2):

https://eu-central-1-1.aws.cloud2.influxdata.com/api/v2/write

Regards,
Felix