For me the bootstrap script worked nicely on RHEL8. On RHEL7 I also got the 
error about the wrong python version. Setting env variables to make EB more 
verbose, the problem was not python itself, but python being unable to open 
easybuild.main.
So on RHEL7 I installed latest easybuild using the --install-latest-eb-release 
with an older release. Had to set LMOD_DISABLE_SAME_NAME_AUTOSWAP to no to make 
it work.

Regards, Joris.

-----Original Message-----
From: [email protected] <[email protected]> On 
Behalf Of Kenneth Hoste
Sent: Friday, June 4, 2021 2:48 PM
To: Ole Holm Nielsen <[email protected]>
Cc: [email protected]
Subject: Re: [easybuild] ERROR: No compatible 'python' command found via $PATH 
(EasyBuild requires Python 2.6+ or 3.5+)

Think Secure. This email is from an external source.

Hi Ole,

On 04/06/2021 14:47, Ole Holm Nielsen wrote:
> On 6/4/21 2:41 PM, Kenneth Hoste wrote:
>> On 04/06/2021 14:36, Ole Holm Nielsen wrote:
>>> $ ls -la
>>> /home/modules/software/EasyBuild/4.4.0/lib/python3.6/site-packages/e
>>> asybuild/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...
>
> I think you guessed right!  This node did have an automatic cleanup 
> job, which I've removed now.  I'm sorry for having overlooked this!
>
> I'll reinstall EasyBuild in an empty /home/modules folder and build my 
> modules.  Probably everything is going to be fine then :-)
>
> Thanks for your support!

Aha, I knew I was on to something... :)

Happy to help!


regards,

Kenneth

>
> /Ole
>
>
>>> 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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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-package
>>>>>> s/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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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-packa
>>>>>>> ges/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:/us
>>>>>>>>> r/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