easybuilders / easybuild

EasyBuild - building software with ease
http://easybuild.io
GNU General Public License v2.0
464 stars 143 forks source link

SciPy-bundle_2020.11-foss-2020b installation fails #754

Closed connorourke closed 2 years ago

connorourke commented 2 years ago

I am getting the following error when attempting to install SciPy as a dependency for GROMACS on an Intel system with the foss-2020b toolchain.

FAILED distutils/tests/test_system_info.py::TestSystemInfoReading::test_overrides
= 1 failed, 10908 passed, 52 skipped, 108 deselected, 18 xfailed, 3 xpassed, 2 warnings in 115.24s (0:01:55) =
 (at easybuild/tools/run.py:618 in parse_cmd_output)
== 2021-11-03 08:12:01,239 build_log.py:265 INFO    ... (took 5 mins 10 secs)
== 2021-11-03 08:12:01,240 build_log.py:265 INFO ... (took 5 mins 11 secs)
== 2021-11-03 08:12:01,240 filetools.py:1971 INFO Removing lock /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/.locks/_scratch_cor22_bin_BUILD_EB_janus_easybuild_instances_hc_2020b_software_SciPy-bundle_2020.11-foss-2020b.lock...
== 2021-11-03 08:12:01,247 filetools.py:380 INFO Path /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/.locks/_scratch_cor22_bin_BUILD_EB_janus_easybuild_instances_hc_2020b_software_SciPy-bundle_2020.11-foss-2020b.lock successfully removed.
== 2021-11-03 08:12:01,247 filetools.py:1975 INFO Lock removed: /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/.locks/_scratch_cor22_bin_BUILD_EB_janus_easybuild_instances_hc_2020b_software_SciPy-bundle_2020.11-foss-2020b.lock
== 2021-11-03 08:12:01,248 easyblock.py:3915 WARNING build failed (first 300 chars): cmd "export PYTHONPATH=/tmp/eb-9otqynb6/tmp_r0lzqah/lib/python3.8/site-packages:$PYTHONPATH &&  unset LDFLAGS && cd .. && /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/Python/3.8.6-GCCcore-10.2.0/bin/python -c 'import sys; import numpy; sys.exit(not numpy.test(verbose=2))' 
== 2021-11-03 08:12:01,248 easyblock.py:307 INFO Closing log for application name SciPy-bundle version 2020.11

Can anyone suggest what the issue is and how to resolve it. Potentially looks like Numpy hasn't installed correctly.

Any suggestions welcome!

There are a couple of other warnings and the test that fails above this which look to be down to the system mkl:

=================================== FAILURES ===================================
_____________________ TestSystemInfoReading.test_overrides _____________________

self = <numpy.distutils.tests.test_system_info.TestSystemInfoReading object at 0x2ad049e03580>

    def test_overrides(self):
        previousDir = os.getcwd()
        cfg = os.path.join(self._dir1, 'site.cfg')
        shutil.copy(self._sitecfg, cfg)
        try:
            os.chdir(self._dir1)
            # Check that the '[ALL]' section does not override
            # missing values from other sections
            info = mkl_info()
            lib_dirs = info.cp['ALL']['library_dirs'].split(os.pathsep)
            assert info.get_lib_dirs() != lib_dirs

            # But if we copy the values to a '[mkl]' section the value
            # is correct
            with open(cfg, 'r') as fid:
                mkl = fid.read().replace('ALL', 'mkl')
            with open(cfg, 'w') as fid:
                fid.write(mkl)
            info = mkl_info()
>           assert info.get_lib_dirs() == lib_dirs
E           AssertionError: assert ['/opt/intel/.../tmpkj9qkp_2'] == ['/tmp/eb-9ot.../tmpkj9qkp_2']
E             At index 0 diff: '/opt/intel/oneapi/mkl/2021.1.1' != '/tmp/eb-9otqynb6/tmp45db59jj'
E             Left contains 3 more items, first extra item: '/opt/intel/oneapi/mkl/2021.1.1/lib'
E             Use -v to get the full diff

cfg        = '/tmp/eb-9otqynb6/tmp45db59jj/site.cfg'
fid        = <_io.TextIOWrapper name='/tmp/eb-9otqynb6/tmp45db59jj/site.cfg' mode='w' encoding='UTF-8'>
info       = <numpy.distutils.system_info.mkl_info object at 0x2ad049e15490>
lib_dirs   = ['/tmp/eb-9otqynb6/tmp45db59jj', '/tmp/eb-9otqynb6/tmpkj9qkp_2']
mkl        = '\n[mkl]\nlibrary_dirs = /tmp/eb-9otqynb6/tmp45db59jj:/tmp/eb-9otqynb6/tmpkj9qkp_2\nlibraries = /tmp/eb-9otqynb6/tmp45...te_options]\nmylib_libs = /tmp/eb-9otqynb6/tmp45db59jj/libfoo.so\nlibraries = /tmp/eb-9otqynb6/tmpkj9qkp_2/libbar.so\n'
previousDir = '/scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/build/SciPybundle/2020.11/foss-2020b/numpy'
self       = <numpy.distutils.tests.test_system_info.TestSystemInfoReading object at 0x2ad049e03580>

/tmp/eb-9otqynb6/tmp_r0lzqah/lib/python3.8/site-packages/numpy/distutils/tests/test_system_info.py:276: AssertionError
=============================== warnings summary ===============================
../../../../../software/Python/3.8.6-GCCcore-10.2.0/lib/python3.8/site-packages/_pytest/config/__init__.py:1114
  /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/Python/3.8.6-GCCcore-10.2.0/lib/python3.8/site-packages/_pytest/config/__init__.py:1114: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: hypothesis
    self._mark_plugins_for_rewrite(hook)

../../../../../software/Python/3.8.6-GCCcore-10.2.0/lib/python3.8/site-packages/nose/importer.py:12
  /scratch/cor22/bin/BUILD/EB/janus_easybuild/instances/hc/2020b/software/Python/3.8.6-GCCcore-10.2.0/lib/python3.8/site-packages/nose/importer.py:12: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    from imp import find_module, load_module, acquire_lock, release_lock
branfosj commented 2 years ago

I think that this is fixed in https://github.com/easybuilders/easybuild-easyconfigs/pull/11792 (the failing test information looks like that in the associated bug report: https://github.com/easybuilders/easybuild-easyconfigs/issues/11789).

connorourke commented 2 years ago

Perfect - fixed it. Thanks @branfosj