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/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...
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-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