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'


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


--
Ole Holm Nielsen
PhD, Senior HPC Officer
Department of Physics, Technical University of Denmark,
Fysikvej Building 309, DK-2800 Kongens Lyngby, Denmark
E-mail: [email protected]
Homepage: http://dcwww.fysik.dtu.dk/~ohnielse/
Mobile: (+45) 5180 1620

Reply via email to