On 04/06/2021 14:30, Ole Holm Nielsen wrote:
On 6/4/21 2:22 PM, Kenneth Hoste wrote:
Hi Ole,

On 04/06/2021 14:09, Ole Holm Nielsen wrote:
On 6/4/21 1:54 PM, Kenneth Hoste wrote:
Please try running this, which will probably reveal the problem:

    python3 -O -m easybuild.main

$ python3 -O -m easybuild.main
Traceback (most recent call last):
   File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
     "__main__", mod_spec)
   File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
     exec(code, run_globals)
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/main.py", line 48, in <module>      from easybuild.framework.easyblock import build_and_install_one, inject_checksums    File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 54, in <module>
     import easybuild.tools.environment as env
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/tools/environment.py", line 36, in <module>
     from easybuild.tools.config import build_option
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/tools/config.py", line 47, in <module>
     from easybuild.base.frozendict import FrozenDictKnownKeys
ModuleNotFoundError: No module named 'easybuild.base.frozendict'

So the conclusion that 'python3' doesn't give access to a working EasyBuild installation was correct...

Your EasyBuild installation is basically broken, but the question then is how this happened, since the bootstrap procedure includes a check to ensure the installation completed correctly...

Do you have a 'base' subdirectory in /home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/, and if so, what's in there?

$ ls -la /home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild
total 44
drwxr-xr-x.  8 modules modules   137 Jun  3 09:42 .
drwxr-xr-x.  4 modules modules   182 Jun  3 09:42 ..
drwxr-xr-x.  3 modules modules   147 Jun  4 07:30 base
drwxr-xr-x. 31 modules modules  4096 Jun  3 09:42 easyblocks
drwxr-xr-x.  4 modules modules   151 Jun  3 09:42 framework
-rw-r--r--.  1 modules modules  1114 Jun  2 11:54 __init__.py
-rw-r--r--.  1 modules modules 24801 Jun  2 11:54 main.py
drwxr-xr-x.  2 modules modules   134 Jun  3 09:42 __pycache__
drwxr-xr-x.  7 modules modules  4096 Jun  4 07:30 toolchains
drwxr-xr-x. 11 modules modules  4096 Jun  4 07:30 tools


And what do you have in /home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/base then?



Is this problem reproducible? If you reinstall EasyBuild v4.4.0, does the problem stay?

I've done the bootstrap again now.  The bootstrap log file is attached.

I have the same problem:

[modules@d059 ~]$ eb --help
 >> Considering '/usr/bin/python3'...
>> '/usr/bin/python3' version: 3.6.8, which matches Python 3 version requirement (>= 3.5) >> '/usr/bin/python3' is NOT able to import 'easybuild.main', so NOT retaining it
 >> Considering 'python'...
 >> No 'python' found in $PATH, skipping...
 >> Considering 'python3'...
>> 'python3' version: 3.6.8, which matches Python 3 version requirement (>= 3.5)
 >> 'python3' is NOT able to import 'easybuild.main', so NOT retaining it
 >> Considering 'python2'...
 >> No 'python2' found in $PATH, skipping...
ERROR: No compatible 'python' command found via $PATH (EasyBuild requires Python 2.6+ or 3.5+)



Somehow that's resulting in a non-zero exit code, which makes the 'eb' wrapper conclude it can't use the 'python3' command.

You can control which python* command is used to run EasyBuild using the $EB_PYTHON environment variable:

  export EB_PYTHON=python3

But that won't make any difference here, it should work already with python3?

If you also define $EB_VERBOSE (any value, so "export EB_VERBOSE=1"), you'll get a bit more information.

Indeed:

$ export EB_VERBOSE=1
$ eb --help
 >> Considering '/usr/bin/python3'...
 >> '/usr/bin/python3' version: 3.6.8, which matches Python 3 version requirement (>= 3.5)  >> '/usr/bin/python3' is NOT able to import 'easybuild.main', so NOT retaining it
 >> Considering 'python'...
 >> No 'python' found in $PATH, skipping...
 >> Considering 'python3'...
 >> 'python3' version: 3.6.8, which matches Python 3 version requirement (>= 3.5)  >> 'python3' is NOT able to import 'easybuild.main', so NOT retaining it
 >> Considering 'python2'...
 >> No 'python2' found in $PATH, skipping...
ERROR: No compatible 'python' command found via $PATH (EasyBuild requires Python 2.6+ or 3.5+)

$ python3 -O -m easybuild.main
Traceback (most recent call last):
   File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main
     "__main__", mod_spec)
   File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code
     exec(code, run_globals)
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/main.py", line 48, in <module>      from easybuild.framework.easyblock import build_and_install_one, inject_checksums    File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/framework/easyblock.py", line 54, in <module>
     import easybuild.tools.environment as env
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/tools/environment.py", line 36, in <module>
     from easybuild.tools.config import build_option
   File "/home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/tools/config.py", line 47, in <module>
     from easybuild.base.frozendict import FrozenDictKnownKeys
ModuleNotFoundError: No module named 'easybuild.base.frozendict'

On 04/06/2021 13:33, Ole Holm Nielsen wrote:
I just installed EasyBuild v4.4.0 on a server running Almalinux 8.4:

$ python3 bootstrap_eb.py $EASYBUILD_PREFIX

Unfortunately, I'm now getting this error about a missing python:

$ eb --help
ERROR: No compatible 'python' command found via $PATH (EasyBuild requires Python 2.6+ or 3.5+)

Obviously, Python3 is installed on this el8 system:

$ which python python3
/usr/bin/which: no python in (/home/modules/software/EasyBuild/4.4.0/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/opt/modules/bin)
/usr/bin/python3

$ rpm -qf /usr/bin/python3
python36-3.6.8-2.module_el8.3.0+6191+6b4b10ec.x86_64

Is there a fix for the inability to locate the python command?

Thanks,
Ole



Reply via email to