I need help regarding Installation of Fenics

I need help regarding Installation of Fenics for my research . Whaen I see documentation I get stuck because there are lot of thing in the internet and Gihub also, So I want to install the latest version of Fenics by which i can work without any problem

See https://fenicsproject.org/download/

From the above link installed the following :slight_smile: The easiest way to install FEniCSx on Debian or Ubuntu Linux is via apt:

sudo add-apt-repository ppa:fenics-packages/fenics
sudo apt update
sudo apt install fenicsx

BUT when i run the example of demo_poisson.py.
it show the error ModuleNotFoundError: No module named ‘dolfinx’

First, what operating system (what version) are you using exactly?

Next, confirm the version with

$ cat /etc/debian_version
$ uname -a

After that, check your Fenics installation with

$ dpkg -l fenicsx "*basix*" "*ufl*" "*ffcx*" "*dolfinx*"

vm236@vm236:~$ cat /etc/debian_version
bullseye/sid

vm236@vm236:~$ uname -a
Linux vm236 5.15.0-122-generic #132~20.04.1-Ubuntu SMP Fri Aug 30 15:50:07 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

vm236@vm236:~$ dpkg -l fenicsx “basix” “ufl” “ffcx” “dolfinx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Descripti>
++±=========================-==========================-============-=========>
ii basix-doc 0.4.2-7~ppa1~focal1 all Finite El>
ii dolfinx-doc 1:0.4.1-1exp2~ppa2~focal1 all Documenta>
ii fenicsx 2:0.4.1.2~ppa1~focal1 all Automated>
ii libbasix-dev:amd64 0.4.2-7~ppa1~focal1 amd64 Finite El>
ii libbasix0.4:amd64 0.4.2-7~ppa1~focal1 amd64 Finite El>
un libdolfinx-complex-dev (no descr>
ii libdolfinx-dev:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared li>
ii libdolfinx-real-dev:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared li>
ii libdolfinx-real0.4:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared li>
un python-ufl (no descr>
ii python-ufl-doc 2022.1.0-1exp2~ppa1~focal1 all documenta>
ii python3-basix 0.4.2-7~ppa1~focal1 amd64 Finite El>
ii python3-dolfinx:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Python in>
un python3-dolfinx-complex (no descr>
ii python3-dolfinx-real 1:0.4.1-1exp2~ppa2~focal1 amd64 Python in>
ii python3-ffcx 1:0.4.2-1exp2~ppa1~focal4 all next-gen >
ii python3-ufl 2022.1.0-1exp2~ppa1~focal1 all unified l>
lines 1-22/22 (END)

You have a very old installation. Packages for Ubuntu focal have not been updated since 2022. The simplest way to way to fix your installation is to upgrade the operating system itself.

In regards to your error message No module named ‘dolfinx’, sometimes it occurs when there is a mismatch between versions. Each of python, petsc and fenicsx (dolfinx) all need to be built and installed together for the package to be accessible. You might see that error if a local installation of any one of these components has been done outside the debian package management system.

Upgrade your Ubuntu installation to a more recent version.

For what it’s worth, I checked that that old version of dolfinx still runs successfully on a fresh installation of ubuntu focal (20.04). Your system must have the problem I mentioned, likely a local installation of python3, or possibly you’re trying to use python (python2) instead of python3.

What is reported by each of

$ dpkg -l python3
$ python --version
$ python3 --version
$ python3 -c "import sys; print(sys.path)"

?

1 Like

I update ubuntu as per latest version available for my virtual machine provided by my my institute. then i rerun the the same query .
Next, confirm the version with

$ cat /etc/debian_version
$ uname -a

After that, check your Fenics installation with

$ dpkg -l fenicsx "*basix*" "*ufl*" "*ffcx*" "*dolfinx*"

And the following the result came:

vm236@vm236:~$ cat /etc/debian_version
bookworm/sid

vm236@vm236:~$ uname -a
Linux vm236 5.15.0-122-generic #132-Ubuntu SMP Thu Aug 29 13:45:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

vm236@vm236:~$ dpkg -l fenicsx “basix” “ufl” “ffcx” “dolfinx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±=========================-=========================-============-===================>
ii basix-doc 0.8.0-3~ppa1~jammy2 all Finite Element Basi>
ii dolfinx-doc 1:0.8.0-6~ppa3~jammy1 all Documentation and d>
ii fenicsx 2:0.8.0.2~ppa1~jammy1 all Automated Solution >
ii libbasix-dev:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
ii libbasix0.4:amd64 0.4.2-7~ppa1~focal1 amd64 Finite Element Basi>
ii libbasix0.8:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
un libdolfinx-complex-dev (no description ava>
ii libdolfinx-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and he>
ii libdolfinx-real-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and he>
ii libdolfinx-real0.4:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared libraries fo>
ii libdolfinx-real0.8:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared libraries fo>
un python-ufl (no description ava>
ii python-ufl-doc 2024.1.0-2~ppa1~jammy4 all documentation and d>
un python-ufl-legacy-doc (no description ava>
un python3-adios4dolfinx (no description ava>
ii python3-basix 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
ii python3-dolfinx:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Python interface fo>
un python3-dolfinx-complex (no description ava>
un python3-dolfinx-mpc (no description ava>
ii python3-dolfinx-real 1:0.8.0-6~ppa3~jammy1 amd64 Python interface fo>
ii python3-ffcx 1:0.8.0-2~ppa1~jammy3 all next-gen compiler f>
ii python3-ufl 2024.1.0-2~ppa1~jammy4 all unified language fo>
ii python3-ufl-legacy 1:2022.3.0-2~ppa1~focal4 all legacy unified lang>

|/ Name Version Architecture Description
++±=========================-=========================-============-==============================================================================
ii basix-doc 0.8.0-3~ppa1~jammy2 all Finite Element Basis Function Definition Runtime Library (docs)
ii dolfinx-doc 1:0.8.0-6~ppa3~jammy1 all Documentation and demo programs for DOLFIN
ii fenicsx 2:0.8.0.2~ppa1~jammy1 all Automated Solution of Differential Equations
ii libbasix-dev:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basis Function Definition Runtime Library (development headers)
ii libbasix0.4:amd64 0.4.2-7~ppa1~focal1 amd64 Finite Element Basis Function Definition Runtime Library (Python 3)
ii libbasix0.8:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basis Function Definition Runtime Library (Python 3)
un libdolfinx-complex-dev (no description available)
ii libdolfinx-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and header files for DOLFIN
ii libdolfinx-real-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and header files for DOLFIN (real numbers)
ii libdolfinx-real0.4:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared libraries for DOLFIN
ii libdolfinx-real0.8:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared libraries for DOLFIN
un python-ufl (no description available)
ii python-ufl-doc 2024.1.0-2~ppa1~jammy4 all documentation and demos for UFL
un python-ufl-legacy-doc (no description available)
un python3-adios4dolfinx (no description available)
ii python3-basix 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basis Function Definition Runtime Library (Python 3)
ii python3-dolfinx:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Python interface for DOLFIN (Python 3)
un python3-dolfinx-complex (no description available)
un python3-dolfinx-mpc (no description available)
ii python3-dolfinx-real 1:0.8.0-6~ppa3~jammy1 amd64 Python interface for DOLFIN (Python 3)
ii python3-ffcx 1:0.8.0-2~ppa1~jammy3 all next-gen compiler for finite element variational forms (Python 3)
ii python3-ufl 2024.1.0-2~ppa1~jammy4 all unified language for form-compilers (Python 3)
ii python3-ufl-legacy 1:2022.3.0-2~ppa1~focal4 all legacy unified language for form-compilers (Python 3)

||/ Name Version Architecture Description
++±=========================-=========================-============-===================>
ii basix-doc 0.8.0-3~ppa1~jammy2 all Finite Element Basi>
ii dolfinx-doc 1:0.8.0-6~ppa3~jammy1 all Documentation and d>
ii fenicsx 2:0.8.0.2~ppa1~jammy1 all Automated Solution >
ii libbasix-dev:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
ii libbasix0.4:amd64 0.4.2-7~ppa1~focal1 amd64 Finite Element Basi>
ii libbasix0.8:amd64 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
un libdolfinx-complex-dev (no description ava>
ii libdolfinx-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and he>
ii libdolfinx-real-dev:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared links and he>
ii libdolfinx-real0.4:amd64 1:0.4.1-1exp2~ppa2~focal1 amd64 Shared libraries fo>
ii libdolfinx-real0.8:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Shared libraries fo>
un python-ufl (no description ava>
ii python-ufl-doc 2024.1.0-2~ppa1~jammy4 all documentation and d>
un python-ufl-legacy-doc (no description ava>
un python3-adios4dolfinx (no description ava>
ii python3-basix 0.8.0-3~ppa1~jammy2 amd64 Finite Element Basi>
ii python3-dolfinx:amd64 1:0.8.0-6~ppa3~jammy1 amd64 Python interface fo>
un python3-dolfinx-complex (no description ava>
un python3-dolfinx-mpc (no description ava>
ii python3-dolfinx-real 1:0.8.0-6~ppa3~jammy1 amd64 Python interface fo>
ii python3-ffcx 1:0.8.0-2~ppa1~jammy3 all next-gen compiler f>
ii python3-ufl 2024.1.0-2~ppa1~jammy4 all unified language fo>
ii python3-ufl-legacy 1:2022.3.0-2~ppa1~focal4 all legacy unified lang>
lines 1-28/28 (END)

vm236@vm236:~$ dpkg -l python3

ii python3 3.10.6-1~22.04.1 amd64 interactive high-level object-oriented

vm236@vm236:~ python --version~ Command 'python' not found, did you mean: command 'python3' from deb python3 command 'python' from deb python-is-python3 vm236@vm236:~ python3 --version
Python 3.10.12
vm236@vm236:~$ python3 -c “import sys; print(sys.path)”
[‘’, ‘/usr/lib/python310.zip’, ‘/usr/lib/python3.10’, ‘/usr/lib/python3.10/lib-dynload’, ‘/usr/local/lib/python3.10/dist-packages’, ‘/usr/lib/python3/dist-packages’, ‘/usr/lib/petsc/lib/python3/dist-packages’, ‘/usr/lib/slepc/lib/python3/dist-packages’, ‘/usr/lib/python3.10/dist-packages’]

Your versions look correct now. Is it now working?

python3 -c "import dolfinx; print(dolfinx.__version__); print(dolfinx.__path__)"
1 Like

vm236@vm236:~$ python3 -c “import dolfinx; print(dolfinx.version); print(dolfinx.path)”
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
Authorization required, but no authorization protocol specified
0.8.0
[‘/usr/lib/petsc/lib/python3/dist-packages/dolfinx’]