I’ve been trying to install Streamlit for a while now on a Surface Pro X running Ubuntu 20.04 LTS on WSL2.0 without success.
The problem always occurs when attempting to build wheels for pyarrow which happens as part of the streamlit installation. My process is as follows:
- Clean install of Ubuntu 20.04 LTS
- sudo apt-get install python3-pip
- sudo apt-get install python3-venv
- Create and activate new environment
- pip3 install wheel (tried both with and without this command)
- pip3 install streamlit
This then goes through installing all the packages it needs until it get to pyarrow-2.0.0, it then pauses for a while on ‘Installing Build Dependencies’ before giving a long screed of errors finishing with
ERROR: Could not build wheels for pyarrow which use PEP 517 and cannot be installed directly.
Looking further up the error chain I also see:
– Running cmake for pyarrow
cmake -DPYTHON_EXECUTABLE=/home/he/envs/jupyter/bin/python3 -DPython3_EXECUTABLE=/home/he/envs/jupyter/bin/python3 -DPYARROW_BUILD_CUDA=off -DPYARROW_BUILD_FLIGHT=off -DPYARROW_BUILD_GANDIVA=off -DPYARROW_BUILD_DATASET=off -DPYARROW_BUILD_ORC=off -DPYARROW_BUILD_PARQUET=off -DPYARROW_BUILD_PLASMA=off -DPYARROW_BUILD_S3=off -DPYARROW_BUILD_HDFS=off -DPYARROW_USE_TENSORFLOW=off -DPYARROW_BUNDLE_ARROW_CPP=off -DPYARROW_BUNDLE_BOOST=off -DPYARROW_GENERATE_COVERAGE=off -DPYARROW_BOOST_USE_SHARED=on -DPYARROW_PARQUET_USE_SHARED=on -DCMAKE_BUILD_TYPE=release /tmp/pip-install-3z5ztsz0/pyarrow
error: command ‘cmake’ failed with exit status 1
ERROR: Failed building wheel for pyarrow
I’ve been trawling the Streamlit and pyarrow forums for a while now and have tried various solutions including --no-binary, --no-pep-517 and explicity passing the architecture to the cmake build command. However to be blunt I don’t understand what these commands are doing so its difficult for me to systematically troubleshoot the issue so I turn to the community for help.
Streamlit installs perfectly on my standard x64 intel windows system, is this a problem with the Pro X running an ARM architecture? If so how can I workaround this? I know from my forum trawling that Streamlit has been successfully installed on RPi 4’s using ARM processors so I think there’s just something I’m missing.