On 04/06/2021 14:36, Ole Holm Nielsen wrote:
$ ls -la /home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/easybuild/base
total 172
drwxr-xr-x. 3 modules modules   147 Jun  4 07:30 .
drwxr-xr-x. 8 modules modules   137 Jun  3 09:42 ..
-rw-r--r--. 1 modules modules  5174 Jun  2 11:54 exceptions.py
-rw-r--r--. 1 modules modules 34846 Jun  2 11:54 fancylogger.py
-rw-r--r--. 1 modules modules 78284 Jun  2 11:54 generaloption.py
-rw-r--r--. 1 modules modules 22858 Jun  2 11:54 optcomplete.py
drwxr-xr-x. 2 modules modules  4096 Jun  3 09:42 __pycache__
-rw-r--r--. 1 modules modules 11621 Jun  2 11:54 rest.py
-rw-r--r--. 1 modules modules  6494 Jun  2 11:54 testing.py

Somehow you're missing frozendict.py and wrapper.py there...

I have no idea how that happened, but I strongly suspect that something cleaned up those files after the bootstrap was done.

frozendict.py and wrapper.py are the files that have been touched least recently in that directory, which could have something to do with it (automatic cleanup of old files by a cron job?!), but I'm guessing...


regards,

Kenneth



On 6/4/21 2:34 PM, Kenneth Hoste wrote:
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