Import getfem++ into conda environnement ? - Raspberry Pi 4 - Ubuntu 21.04

544 Views Asked by At

In my project I'm using an Raspberry PI 4 with Ubuntu 21.04 installed on it (aarch64).

I'm using :

-Pycharm as my IDE for Python

-Miniforge3 to have a conda environnement

I would like to install the library getfem++ and pyvista to run this example : https://getfem-examples.readthedocs.io/en/latest/demo_unit_disk.html

1) GETFEM++

I have installed getfem++ with the command sudo aptitude install python3-getfem++ --> It works

2) Pyvista

-With pip install pyvista : error, seems to have a depedency with vtk that I failed to installed.

pip install pyvista
Collecting pyvista
  Using cached pyvista-0.30.1-py3-none-any.whl (1.2 MB)
Collecting appdirs
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting scooby>=0.5.1
  Using cached scooby-0.5.7-py3-none-any.whl (13 kB)
Collecting meshio<5.0,>=4.0.3
  Using cached meshio-4.4.3-py3-none-any.whl (153 kB)
Requirement already satisfied: imageio in ./.local/lib/python3.9/site-packages (from pyvista) (2.9.0)
Requirement already satisfied: pillow in /usr/lib/python3/dist-packages (from pyvista) (8.1.2)
Collecting pyvista
  Using cached pyvista-0.30.0-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.29.1-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.29.0-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.28.1-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.28.0-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.27.4-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.27.3-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.27.2-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.27.1-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.27.0-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.26.1-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.26.0-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.25.3-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.25.2-py3-none-any.whl (1.2 MB)
  Using cached pyvista-0.25.1.tar.gz (1.2 MB)
Requirement already satisfied: numpy in ./.local/lib/python3.9/site-packages (from pyvista) (1.20.3)
  Using cached pyvista-0.24.3.tar.gz (1.2 MB)
  Using cached pyvista-0.24.2.tar.gz (1.2 MB)
  Using cached pyvista-0.24.1.tar.gz (1.2 MB)
  Using cached pyvista-0.24.0.tar.gz (1.2 MB)
  Using cached pyvista-0.23.1.tar.gz (1.2 MB)
  Using cached pyvista-0.23.0.tar.gz (1.2 MB)
  Using cached pyvista-0.22.4.tar.gz (1.2 MB)
  Using cached pyvista-0.22.2.tar.gz (1.2 MB)
  Using cached pyvista-0.22.1.tar.gz (1.2 MB)
  Using cached pyvista-0.22.0.tar.gz (1.2 MB)
  Using cached pyvista-0.21.4.tar.gz (1.1 MB)
  Using cached pyvista-0.21.3.tar.gz (1.1 MB)
  Using cached pyvista-0.21.2.tar.gz (1.1 MB)
  Using cached pyvista-0.21.1.tar.gz (1.1 MB)
  Using cached pyvista-0.21.0.tar.gz (1.1 MB)
  Using cached pyvista-0.20.4.tar.gz (1.1 MB)
  Using cached pyvista-0.20.3.tar.gz (1.1 MB)
  Using cached pyvista-0.20.2.tar.gz (1.1 MB)
  Using cached pyvista-0.20.1.tar.gz (1.1 MB)
  Using cached pyvista-0.20.0.tar.gz (1.1 MB)
ERROR: Cannot install pyvista==0.20.0, pyvista==0.20.1, pyvista==0.20.2, pyvista==0.20.3, pyvista==0.20.4, pyvista==0.21.0, pyvista==0.21.1, pyvista==0.21.2, pyvista==0.21.3, pyvista==0.21.4, pyvista==0.22.0, pyvista==0.22.1, pyvista==0.22.2, pyvista==0.22.4, pyvista==0.23.0, pyvista==0.23.1, pyvista==0.24.0, pyvista==0.24.1, pyvista==0.24.2, pyvista==0.24.3, pyvista==0.25.1, pyvista==0.25.2, pyvista==0.25.3, pyvista==0.26.0, pyvista==0.26.1, pyvista==0.27.0, pyvista==0.27.1, pyvista==0.27.2, pyvista==0.27.3, pyvista==0.27.4, pyvista==0.28.0, pyvista==0.28.1, pyvista==0.29.0, pyvista==0.29.1, pyvista==0.30.0 and pyvista==0.30.1 because these package versions have conflicting dependencies.

The conflict is caused by:
    pyvista 0.30.1 depends on vtk
    pyvista 0.30.0 depends on vtk
    pyvista 0.29.1 depends on vtk
    pyvista 0.29.0 depends on vtk
    pyvista 0.28.1 depends on vtk
    pyvista 0.28.0 depends on vtk
    pyvista 0.27.4 depends on vtk
    pyvista 0.27.3 depends on vtk
    pyvista 0.27.2 depends on vtk
    pyvista 0.27.1 depends on vtk
    pyvista 0.27.0 depends on vtk
    pyvista 0.26.1 depends on vtk
    pyvista 0.26.0 depends on vtk
    pyvista 0.25.3 depends on vtk
    pyvista 0.25.2 depends on vtk
    pyvista 0.25.1 depends on vtk
    pyvista 0.24.3 depends on vtk
    pyvista 0.24.2 depends on vtk
    pyvista 0.24.1 depends on vtk
    pyvista 0.24.0 depends on vtk
    pyvista 0.23.1 depends on vtk
    pyvista 0.23.0 depends on vtk
    pyvista 0.22.4 depends on vtk
    pyvista 0.22.2 depends on vtk
    pyvista 0.22.1 depends on vtk
    pyvista 0.22.0 depends on vtk
    pyvista 0.21.4 depends on vtk
    pyvista 0.21.3 depends on vtk
    pyvista 0.21.2 depends on vtk
    pyvista 0.21.1 depends on vtk
    pyvista 0.21.0 depends on vtk
    pyvista 0.20.4 depends on vtk
    pyvista 0.20.3 depends on vtk
    pyvista 0.20.2 depends on vtk
    pyvista 0.20.1 depends on vtk
    pyvista 0.20.0 depends on vtk

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

-With a conda environnement (from miniforge3) : pyvista can be installed without difficulties.

At this point I'm asking myself if it's possible to use the conda environnement and add the path to the getfem++ library in Pycharm ?

I created a .pth file in /home/alban/miniforge3/envs/Conda_PY39/lib/python3.9/site-packages with :

/usr/lib/python3.9/dist-packages
/usr/lib/python3/dist-packages
/lib/python3/dist-packages
/lib/python3.9/dist-packages

With this it seems that I detect "getfem" and "pyvista" but I get this error :

/home/alban/miniforge3/envs/Conda_PY39/bin/python /home/alban/PycharmProjects/pythonProject/main.py
Traceback (most recent call last):
  File "/home/alban/PycharmProjects/pythonProject/main.py", line 1, in <module>
    import getfem as gf
  File "/usr/lib/python3/dist-packages/getfem/__init__.py", line 16, in <module>
    from .getfem import *
  File "/usr/lib/python3/dist-packages/getfem/getfem.py", line 44, in <module>
    from ._getfem import *
ImportError: /home/alban/miniforge3/envs/Conda_PY39/bin/../lib/libgfortran.so.5: version `GFORTRAN_10' not found (required by /lib/aarch64-linux-gnu/libdmumps_seq-5.3.so)

Process finished with exit code 1

I don't really know what else to try any suggestions ?

1

There are 1 best solutions below

1
On BEST ANSWER

I succeeded to install getfem++ and pyvista on the Rpi4 (without conda).

I posted my method at the end of this github discussion

Hope it'll help you!

A brief list of steps I took (with details at the linked discussion):

  1. installed Ubuntu 20.04 to get Python 3.8.6.
  2. install python3-getfem++ with apt
  3. build vtk from source because there are no wheels for the arm64 architecture that's used by Rpi4
  4. install PyVista with the --no-dependencies switch to work with dependencies installed manually
  5. install PyVista's other dependencies manually (using a PC and pip installing pyvista into a fresh virtualenv can help gather the dependencies, if one doesn't want to go looking in PyVista's setup.py for dependencies)
  6. install packages (especially xvfb) to get a virtual framebuffer for plotting.