Hello everyone!
I just installed syrthes 5.0 and i am having some errors which i would like to share here see if anyone can help.
The first error concerns syrthesmpi: I correctly entered the Openmpi path in the setup.ini file. But he can't install it. When I look in syrthesmpi.log I notice that in line 8 (syrthesmpi.log attached) it retrieves two directories in a row (/usr/lib64/openmpi/bin//usr/lib64/openmpi/bin/mpicc: Command not found) instead of one (/usr/lib64/openmpi/bin/mpicc). Anyone know why it retrieves these two paths and therefore returns me an error?
The second error concerns syrthes gui: When I run the calculation with syrthes gui (syrthes.gui --> Open Data File --> Run SYRTHES), I get a python error (python3: symbol lookup error: python3: undefined symbol: _Py_LegacyLocaleDetected). But if I run with command (for example python3 syrthes.py -n 2 -r 1 -d square.syd -t scotch -v ensight -l listing, I have no issue. Any idea about this error?
Thank you in advance for your help.
Kanssoune
Syrthesmpi error end Syrthes.gui With Python error
Syrthesmpi error end Syrthes.gui With Python error
- Attachments
-
- syrthesmpi.log
- (1.2 KiB) Downloaded 1188 times
-
- Posts: 4164
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello,
I'm not sure about the first error, but I have a probable explanation for the second.
Unless things have changed, Syrthes packages a binary distribution of Python+Qt (and other tools).
So :
- when you run syrthes.gui, it is using the path to the packaged version, which is probably built on a different Linux distribution and has not-quite compatible binaries.
- when you run python3 syrthes.py, you are probably using your own Python (though this depends on what was sourced; you can check with "which python3")
If this is the case, you can probably edit syrthes.gui (which is a small script) to adjust the path to the working Python.
The first error is similar to an issue we seem to have patched in our Syrthes 4 "source-only" backup version (https://www.code-saturne.org/cms/web/si ... _27.tar.gz), due to the way the Syrthes scripts work. I did not check the Syrthes 5 build, which adds many dependencies, and too many (potentially incompatible) binary files to my taste. The Syrthes developers have access to our internal patched git branch, but have not integrated/adapted our patches, so I can't do more.
In case the patch matches, try to apply this to your Syrthes 5 build (+ for added lines, - for removed, the rest for context).:
Regards,
Yvan
I'm not sure about the first error, but I have a probable explanation for the second.
Unless things have changed, Syrthes packages a binary distribution of Python+Qt (and other tools).
So :
- when you run syrthes.gui, it is using the path to the packaged version, which is probably built on a different Linux distribution and has not-quite compatible binaries.
- when you run python3 syrthes.py, you are probably using your own Python (though this depends on what was sourced; you can check with "which python3")
If this is the case, you can probably edit syrthes.gui (which is a small script) to adjust the path to the working Python.
The first error is similar to an issue we seem to have patched in our Syrthes 4 "source-only" backup version (https://www.code-saturne.org/cms/web/si ... _27.tar.gz), due to the way the Syrthes scripts work. I did not check the Syrthes 5 build, which adds many dependencies, and too many (potentially incompatible) binary files to my taste. The Syrthes developers have access to our internal patched git branch, but have not integrated/adapted our patches, so I can't do more.
In case the patch matches, try to apply this to your Syrthes 5 build (+ for added lines, - for removed, the rest for context).:
Code: Select all
## Compiler
makefileinFile.write("# Compiler path for gcc\n")
makefileinFile.write("FRONT_CC="+self.comp+"\n")
+ p_mpicc = None
if self.dicolib['mpi']['USE'].upper()=='YES':
makefileinFile.write("# Compiler path for mpicc\n")
- makefileinFile.write("CC="+self.dicolib['mpi']['PATH']+"/bin/"+self.wrapperc+"\n"+"\n")
+ for s in ('/', '/bin/', '/bin64/'):
+ p1 = self.dicolib['mpi']['PATH'] + s + self.wrapperc
+ if os.path.isfile(p1):
+ p_mpicc = p1
+ break
+
+ if p_mpicc:
+ makefileinFile.write("CC="+p_mpicc+"\n")
else:
makefileinFile.write("CC="+self.comp+"\n")
Yvan
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello Yvan,
Thank you a lot for your reply.
When I look at the syrthes.gui file, I don't see how to modify it in order to adjust the version of python that works.
Attached is the syrthes.gui file.
Regards,
Kanssoune
Thank you a lot for your reply.
When I look at the syrthes.gui file, I don't see how to modify it in order to adjust the version of python that works.
Attached is the syrthes.gui file.
Regards,
Kanssoune
- Attachments
-
- syrthes.gui.txt
- (344 Bytes) Downloaded 1197 times
-
- Posts: 4164
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello,
Since you are using a binary build, things might be a bit different from what I have on my side with Syrthes 4, but you can try checking /opt/local/syrthes/syrthes5.0/arch/Linux_x86_64/lib/syrthes-GUI_exe/SyrthesMain to see if it is a text or binary file. If it is a text file, it might contain the relevant lines. If it is binary, it would be necessary to recompile it, but I am not sure of the procedure (i.e. we patched the v4.0 install on the code_saturne website so as to streamline that part, and I do not remember how is is done in the reference version, but you have some form of build documentation in the syrthes-gui directory).
Regards,
Yvan
Since you are using a binary build, things might be a bit different from what I have on my side with Syrthes 4, but you can try checking /opt/local/syrthes/syrthes5.0/arch/Linux_x86_64/lib/syrthes-GUI_exe/SyrthesMain to see if it is a text or binary file. If it is a text file, it might contain the relevant lines. If it is binary, it would be necessary to recompile it, but I am not sure of the procedure (i.e. we patched the v4.0 install on the code_saturne website so as to streamline that part, and I do not remember how is is done in the reference version, but you have some form of build documentation in the syrthes-gui directory).
Regards,
Yvan
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello Yvan,
Thank you for your answer.
/opt/local/syrthes/syrthes5.0/arch/Linux_x86_64/lib/syrthes-GUI_exe/SyrthesMain is a binary file.
I followed the compilation steps from the attached README_build_GUI.txt file to recompile it.
At the build step with cx_freeze, I got some errors without any indication:
Installation : generation with cxfreeze ...
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
running build
running build_exe
After that, the build apparently is done without any problem (see the Install_output.txt attached for more information if needed).
To test the syrthes GUI, I type in the ex.linux-x86_64 directory (as described in Readme file) ./SyrtesMain. But I got the following error:
[root@hotcell exe.linux-x86_64]# ./SyrthesMain
Traceback (most recent call last):
File "bit_generator.pyx", line 40, in numpy.random.bit_generator
ModuleNotFoundError: No module named 'secrets'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib64/python3.6/site-packages/cx_Freeze/initscripts/__startup__.py", line 120, in run
module_init.run(name + "__main__")
File "/usr/local/lib64/python3.6/site-packages/cx_Freeze/initscripts/Console.py", line 16, in run
exec(code, module_main.__dict__)
File "SyrthesMain.py", line 29, in <module>
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/opt/local/syrthes/syrthes5.0/src/syrthes-gui/src/install/calcView.py", line 21, in <module>
import numpy
File "/usr/local/lib64/python3.6/site-packages/numpy/__init__.py", line 151, in <module>
from . import random
File "/usr/local/lib64/python3.6/site-packages/numpy/random/__init__.py", line 179, in <module>
from . import _pickle
File "/usr/local/lib64/python3.6/site-packages/numpy/random/_pickle.py", line 1, in <module>
from .mtrand import RandomState
File "mtrand.pyx", line 1, in init numpy.random.mtrand
File "bit_generator.pyx", line 43, in init numpy.random.bit_generator
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/usr/lib64/python3.6/random.py", line 46, in <module>
from hashlib import sha512 as _sha512
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/usr/lib64/python3.6/hashlib.py", line 219, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/lib64/python3.6/hashlib.py", line 124, in __get_openssl_constructor
if not _hashlib.get_fips_mode():
AttributeError: module '_hashlib' has no attribute 'get_fips_mode'
It look that the "secrets" module is not found. But when I type pthon in the terminal and "import secrets", I have no error:
[root@hotcell exe.linux-x86_64]# python
Python 3.6.8 (default, Jun 23 2022, 19:01:59)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-13)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import secrets
>>> secrets.token_hex(16)
'fd8b171488c1960560c4a7ad237e3d33'
Any idea what went wrong?
Best regards,
Kanssoune
Thank you for your answer.
/opt/local/syrthes/syrthes5.0/arch/Linux_x86_64/lib/syrthes-GUI_exe/SyrthesMain is a binary file.
I followed the compilation steps from the attached README_build_GUI.txt file to recompile it.
At the build step with cx_freeze, I got some errors without any indication:
Installation : generation with cxfreeze ...
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
Erreur : Aucune correspondance trouvée
running build
running build_exe
After that, the build apparently is done without any problem (see the Install_output.txt attached for more information if needed).
To test the syrthes GUI, I type in the ex.linux-x86_64 directory (as described in Readme file) ./SyrtesMain. But I got the following error:
[root@hotcell exe.linux-x86_64]# ./SyrthesMain
Traceback (most recent call last):
File "bit_generator.pyx", line 40, in numpy.random.bit_generator
ModuleNotFoundError: No module named 'secrets'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib64/python3.6/site-packages/cx_Freeze/initscripts/__startup__.py", line 120, in run
module_init.run(name + "__main__")
File "/usr/local/lib64/python3.6/site-packages/cx_Freeze/initscripts/Console.py", line 16, in run
exec(code, module_main.__dict__)
File "SyrthesMain.py", line 29, in <module>
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/opt/local/syrthes/syrthes5.0/src/syrthes-gui/src/install/calcView.py", line 21, in <module>
import numpy
File "/usr/local/lib64/python3.6/site-packages/numpy/__init__.py", line 151, in <module>
from . import random
File "/usr/local/lib64/python3.6/site-packages/numpy/random/__init__.py", line 179, in <module>
from . import _pickle
File "/usr/local/lib64/python3.6/site-packages/numpy/random/_pickle.py", line 1, in <module>
from .mtrand import RandomState
File "mtrand.pyx", line 1, in init numpy.random.mtrand
File "bit_generator.pyx", line 43, in init numpy.random.bit_generator
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/usr/lib64/python3.6/random.py", line 46, in <module>
from hashlib import sha512 as _sha512
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
File "/usr/lib64/python3.6/hashlib.py", line 219, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/usr/lib64/python3.6/hashlib.py", line 124, in __get_openssl_constructor
if not _hashlib.get_fips_mode():
AttributeError: module '_hashlib' has no attribute 'get_fips_mode'
It look that the "secrets" module is not found. But when I type pthon in the terminal and "import secrets", I have no error:
[root@hotcell exe.linux-x86_64]# python
Python 3.6.8 (default, Jun 23 2022, 19:01:59)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-13)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import secrets
>>> secrets.token_hex(16)
'fd8b171488c1960560c4a7ad237e3d33'
Any idea what went wrong?
Best regards,
Kanssoune
- Attachments
-
- Install_output.txt
- (453.51 KiB) Downloaded 1207 times
-
- README_build_GUI.txt
- (1.73 KiB) Downloaded 1195 times
-
- Posts: 4164
- Joined: Mon Feb 20, 2012 3:25 pm
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello,
Not quite sure, but it still seems like an issue with different Python builds, or an incomplete "cxfreeze" build.
In our patch for Syrthes 4, we removed cxfreeze entirely:
in syrthes-gui/src/Install.sh, remove the last section (everythin after cxfreeze comment).
Then, in syrthes-install.py, try replacing the installGUI function with the following one (hoping this also works with Syrthes 5).
Best regards,
Yvan
Not quite sure, but it still seems like an issue with different Python builds, or an incomplete "cxfreeze" build.
In our patch for Syrthes 4, we removed cxfreeze entirely:
in syrthes-gui/src/Install.sh, remove the last section (everythin after cxfreeze comment).
Then, in syrthes-install.py, try replacing the installGUI function with the following one (hoping this also works with Syrthes 5).
Code: Select all
def installGUI(self):
pre_built_gui = False
pre_built_dir = ""
if "x86_64" in os.uname()[4]: # <-> self.arch = "Linux_x86_64" or "Linux_IA64"
pre_built_dir = "exe.linux-x86_64"
elif "CYGWIN" in os.uname()[0]:
pre_built_dir = "exe.WIN32"
if pre_built_dir:
try:
shutil.copytree(self.installPath+'syrthes-gui/'+pre_built_dir, self.destPath+self.arch+'/lib/syrthes-GUI_exe')
pre_built_gui = True
except:
print(" ")
print("--> No precompiled GUI build "+self.installPath+"syrthes-gui/"+pre_built_dir)
print(" ")
if not pre_built_gui:
print("--> building GUI ")
print(" ")
cur_dir = os.getcwd()
print(self.installPath)
gui_build_dir = self.installPath + 'syrthes-gui/src'
os.chdir(gui_build_dir)
os.system('./Install.sh')
shutil.copytree(gui_build_dir + '/install',
self.destPath+self.arch+'/lib/syrthesGui')
shutil.rmtree(gui_build_dir + '/install')
os.chdir(cur_dir)
# Create a shortcut to syrthes-GUI program
os.chdir(self.destPath+self.arch+'/bin')
f = open("syrthes.gui",'w')
f.write('#/bin.sh\n')
f.write('# GUI Launcher\n')
if pre_built_gui:
f.write(self.destPath+self.arch+'/lib/syrthes-GUI_exe/SyrthesMain $1 $2 $3 $4 $5')
else:
f.write('python3 ' + self.destPath+self.arch+'/lib/syrthesGui/SyrthesMain.py $1 $2 $3 $4 $5')
f.close()
os.system('chmod +x syrthes.gui')
Yvan
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello Yvan,
Thanks a lot for your help.
It works!!!!
Thanks again and best regards,
Kanssoune
Thanks a lot for your help.
It works!!!!
Thanks again and best regards,
Kanssoune
Re: Syrthesmpi error end Syrthes.gui With Python error
Hello,
this is my first post and sorry for jumping in an old thread. I want to say that I also managed to build code saturne 7 on a Ubuntu Jammy with the patch Yvan gave on this post. Compiling opensource FEA on it are difiicult. I managed to build them with gcc-10, gfortan-10, but with no succsess using gcc-11 etc.
Thanks!
Jos
this is my first post and sorry for jumping in an old thread. I want to say that I also managed to build code saturne 7 on a Ubuntu Jammy with the patch Yvan gave on this post. Compiling opensource FEA on it are difiicult. I managed to build them with gcc-10, gfortan-10, but with no succsess using gcc-11 etc.
Thanks!
Jos
Re: Syrthesmpi error end Syrthes.gui With Python error
Dear all,
I'm coming back to this old post since I'm encountering an issue with the installation of Syrthes v5, which is quite similar to an error posted some time ago.
The compilation and installation procedure of Syrthes seems to succeed and no issue is arisen.
The test of the installation works appropriately when using the python syrthes.py command.
But when using syrthes.gui, an issue is arisen. The GUI opens appropriately and allows me to choose the options I would like. But when pressing the Run SYRTHES button, the simulation doesn't start, and the following error is written in the log window:
python3: symbol lookup error: python3: undefined symbol: _Py_LegacyLocaleDetected
I tried the solution suggested by Yvan in a previous post (by modifying the installGUI() method and by removing the cxfreeze part at the end of the file Install.sh in syrthes-gui/src), but unfortunately it doesn't work since it looks for the exes /opt/Python-3.6.5/bin/pyrcc5 and /opt/Python-3.6.5/bin/python3 that are not present.
The OS I'm working on is RHEL 8.9 and the native Python version installed is 3.6.
Am I missing something?
May somebody of you help me?
I thank you a lot in advance for your kind support!
I'm coming back to this old post since I'm encountering an issue with the installation of Syrthes v5, which is quite similar to an error posted some time ago.
The compilation and installation procedure of Syrthes seems to succeed and no issue is arisen.
The test of the installation works appropriately when using the python syrthes.py command.
But when using syrthes.gui, an issue is arisen. The GUI opens appropriately and allows me to choose the options I would like. But when pressing the Run SYRTHES button, the simulation doesn't start, and the following error is written in the log window:
python3: symbol lookup error: python3: undefined symbol: _Py_LegacyLocaleDetected
I tried the solution suggested by Yvan in a previous post (by modifying the installGUI() method and by removing the cxfreeze part at the end of the file Install.sh in syrthes-gui/src), but unfortunately it doesn't work since it looks for the exes /opt/Python-3.6.5/bin/pyrcc5 and /opt/Python-3.6.5/bin/python3 that are not present.
The OS I'm working on is RHEL 8.9 and the native Python version installed is 3.6.
Am I missing something?
May somebody of you help me?
I thank you a lot in advance for your kind support!