SofaPython3
SofaPython3 copied to clipboard
Sofa.Gui crashes when importing into a runSofa executable (embed interpreted)
For some reason, this only happen when using a packaged version of SOFA (i.e. not build install
by ourself).
To reproduce:
- Download the latest SOFA v20.12 package
- Create this simple scene file and do not put it inside the directory from which runSofa will run, but use instead a different folder: test/test.py
# test/test.py
import Sofa.Gui
def createScene(root):
pass
- Run it using runSofa, for example:
runSofa -l libSofaPython3.so test/test.py
- This happens:
[ERROR] [SofaPython3::SceneLoader] ModuleNotFoundError: No module named 'Sofa.Gui'
At:
test.py(1): <module>
<frozen importlib._bootstrap>(219): _call_with_frames_removed
<frozen importlib._bootstrap_external>(728): exec_module
<frozen importlib._bootstrap>(677): _load_unlocked
<frozen importlib._bootstrap>(696): _load
/usr/lib/python3.7/imp.py(171): load_source
/usr/lib/python3.7/imp.py(234): load_module
<string>(3): <module>
Moreover, everything is fine (i.e. the bug isn't present) if runSofa is ran from the same directory as the scene file. For example, running runSofa -l libSofaPython3.so test.py
instead of runSofa -l libSofaPython3.so test/test.py
[INFO] [PluginManager] Loaded plugin: /home/ozwald/sofa/build/v23.12/install/lib/libSofa.GL.C
omponent.Shader.so
At:
/usr/lib/python3/dist-packages/numpy/core/init.py(49):
SofaPython3 is loaded fine but when I try to run any of the examples nothing loads in the simulator it is just blank, running the animation does nothing. It is as if nothing is being loaded. And I get the above error.