No module named 'pyngcore.pyngcore'

I am trying to install NGSolve from source and followed the instructions as mentioned on the website. I get no errors when doing make and make install. However, when trying to import the compiled library in Python, I get the following error:

{
	"name": "ModuleNotFoundError",
	"message": "No module named 'pyngcore.pyngcore'",
	"stack": "---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
File /scratch/users/wtonnon/VisualStudioProjects/ngsuite/ngsolve-src/comp/test_wouter/test2.py:10
      7 sys.path.insert(0, ngsolve_install_path)
      9 # Import ngsolve and print its file location
---> 10 import ngsolve
     11 print(f\"ngsolve module imported from: {ngsolve.__file__}\")
     13 # Continue with the rest of your script

File ~/VisualStudioProjects/ngsuite/ngsolve-install/lib64/python3.11/site-packages/ngsolve/__init__.py:17
     13 import os, sys
     15 from . import config
---> 17 import netgen
     19 if config.is_python_package and sys.platform.startswith('win'):
     20     netgen_dir = os.path.dirname(netgen.__file__)

File ~/VisualStudioProjects/ngsuite/ngsolve-install/lib64/python3.11/site-packages/netgen/__init__.py:98
     95 del sys
     96 del os
---> 98 from pyngcore import Timer
     99 from . import libngpy
    101 from netgen.libngpy._meshing import _Redraw

File ~/VisualStudioProjects/ngsuite/ngsolve-install/lib64/python3.11/site-packages/pyngcore/__init__.py:1
----> 1 from .pyngcore import *

ModuleNotFoundError: No module named 'pyngcore.pyngcore'"
}

In ngsolve-install/lib64/python3.11/site-packages, there is a folder pyngcore. However, this folder only contains __init__.py, __pycache__, and pyngcore.cpython-36m-x86_64-linux-gnu.so.

In comparison, the folder corresponding to the pip install version of pyngcore has the following: __init__.py, __init__.pyi, __pycache__, pyngcore.cpython-311-x86_64-linux-gnu.so, and pyngcore.pyi. Somehow, it seems that two of these files are missing in my installation from source. Is there a setting in the CMake that can change this?

I got pretty much the same problem and was just about to open a thread myself.
Any help would be greatly appreciated.

Edit: Tried it again on my private machine and everything works well. Only encounter this issue on my pc in the office where I dont have root.

Interesting, I should try it on my private machine as well. I am also restricted on my office PC.

You seem to have compiled against a python 3.6 and try to load with python 3.11

I compiled and loaded with python 3.8 and encountered the same problem :confused:

Thank you for your reply, Christopher.

When I run cmake I get the following:

-- Build Netgen from git submodule


Configure Netgen from submodule...
Checking for write permissions in install directory...
-- Found Python3: /usr/include/python3.11 (found version "3.11.9") found components: Development.Module 
-- Found Python3: /usr/bin/python3.11 (found version "3.11.9") found components: Interpreter Development.Embed 
-- Found Python3: /usr/bin/python3.11 (found version "3.11.9") found components: Interpreter 
Checking for write permissions in install directory...
-- Found Pybind11: /scratch/users/wtonnon/VisualStudioProjects/ngsuite/ngsolve-src/external_dependencies/netgen/external_dependencies/pybind11/include
-- Found Python3: /usr/bin/python3.11 (found version "3.11.9") found components: Interpreter Development.Module 
-- Found Python3: /usr/bin/python3.11 (found version "3.11.9") found components: Interpreter Development.Embed 
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /scratch/users/wtonnon/VisualStudioProjects/ngsuite/ngsolve-build/netgen
grep: /etc/lsb-release: No such file or directory
-- Configuring done (1.0s)
-- Generating done (0.0s)
-- Build files have been written to: /scratch/users/wtonnon/VisualStudioProjects/ngsuite/ngsolve-build

This seems to suggest that the library is being compiled against usr/bin/python3.11. I tried running my python code with Python3.6 as well, but I get the same error, unfortunately.

It seems you have some mixup where netgen finds the correct 3.11 python but pybind or so the 3.6…
try building with make VERBOSE=1 and look in the include/link paths if there is something off while building pyngcore.