Hello,

You're hitting a known problem with installing Python packages with EasyBuild (like EasyBuild itself, which is also a (collection of) Python package(s)) when using the system Python that comes with Ubuntu 22.04, because they've tweaked the default behaviour of "pip install --prefix" to inject an extra /local/ subdirectory rather than directly installing in the specified prefix...

More details are available in https://github.com/easybuilders/easybuild-easyblocks/issues/2976 .

There is an open pull request that enhances the PythonPackage easyblock that should fix the problem you are seeing at https://github.com/easybuilders/easybuild-easyblocks/pull/2977, so please check if you can confirm that, and provide feedback in the issue or in the PR.

To test, try running:

eb --include-easyblocks-from-pr 2977 --install-latest-eb-release --prefix /tmp/easybuild


regards,

Kenneth

On 23/08/2023 17:44, Random Task wrote:
Please forgive me if this is a FAQ, but I searched for my answer in the docs, on github, and in this list's archive without finding any solution.

I'm trying to install easybuild Ubuntu 22.04. I've tried it on both a fully configured workstation as well as a minimal OS on a VM with the same results.

I'm following the instructions found at <https://docs.easybuild.io/installation/ <https://docs.easybuild.io/installation/ to install EB as a module. I have installed lmod 8.6.19 via apt.

The step #2 ('|eb--install-latest-eb-release--prefix/tmp/easybuild|') fails.

Debian/Ubuntu's python appears to differ from the norm by the use of both "dist-packages" and "site-packages". I've tried to take this into consideration and slightly modified Step1 thusly, but am still getting a failure.

export EB_TMPDIR=/tmp/$USER/eb_tmp

python3 -m pip install --ignore-installed --prefix $EB_TMPDIR easybuild

export PATH=$EB_TMPDIR/local/bin:$PATH

export PYTHONPATH=$(/bin/ls -rtd -1 $EB_TMPDIR/local/lib*/python*/dist-packages | tail -1):$PYTHONPATH

export EB_PYTHON=python3


When I run eb --install-latest-eb-release --prefix /tmp/easybuild I see this error


== FAILED: Installation ended unsuccessfully (build directory: /tmp/easybuild/build/EasyBuild/4.8.0/system-system): build failed (first 300 chars): Failed to isolate installed egg dir for easybuild-framework (took 20 secs) == Results of the build can be found in the log file(s) /tmp/eb-2ofwbvaq/easybuild-EasyBuild-4.8.0-20230823.110407.MJwGL.log ERROR: Build of /tmp/eb-2ofwbvaq/tmpme67cc1g/easybuilders/easybuild-easyconfigs-develop/easybuild/easyconfigs/e/EasyBuild/EasyBuild-4.8.0.eb failed (err: 'build failed (first 300 chars): Failed to isolate installed egg dir for easybuild-framework')


The first ERROR line in the referenced log is here.

== 2023-08-23 11:04:27,558 build_log.py:171 ERROR EasyBuild crashed with an error (at easybuild/base/exceptions.py:126 in __init__): Failed to isolate installed egg dir for easybuild-framework (at easybuild/easyblocks/e/easybuildmeta.py:237 in sanity_check_step)


Thanks in advance for any help or pointers. I can provide more detailed info if needed.


PS. On Ubuntu 22.04:

$ python3 -m site
sys.path = [
     '/tmp',
     '/tmp/randomtasks/eb_tmp/lib/python3.10/site-packages',
     '/usr/lib/python310.zip',
     '/usr/lib/python3.10',
     '/usr/lib/python3.10/lib-dynload',
     '/usr/local/lib/python3.10/dist-packages',
     '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/randomtasks/.local' (exists)
USER_SITE: '/home/randomtasks/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True


Reply via email to