Hi Loris,

On 20/08/2020 15:10, Loris Bennett wrote:
Hi,

I am trying to write an EC for an updated version of PyCUDA.  Here is
the diff to the and existing EC:

   [build@admin easyconfigs]$ diff 
/trinity/shared/easybuild/software/EasyBuild/4.2.2/easybuild/easyconfigs/p/PyCUDA/PyCUDA-2018.1-intel-2018a-Python-3.6.4-CUDA-9.1.85.eb
 PyCUDA-2019.1.2-fosscuda-2019b-Python-3.7.4.eb
   4,5c4,5
   < version = '2018.1'
   < versionsuffix = '-Python-%(pyver)s-CUDA-9.1.85'
   ---
   > version = '2019.1.2'
   > versionsuffix = '-Python-%(pyver)s'
   10c10
   < toolchain = {'name': 'intel', 'version': '2018a'}
   ---
   > toolchain = {'name': 'foss', 'version': '2019b'}
   14d13
   < checksums = 
['7079f7738e83ee79ae26f0827ada29fe55921fec9760201199cc2bfb69446c92']
   17,19c16,18
   <     ('Python', '3.6.4'),
   <     ('CUDA', '9.1.85', '', True),
   <     ('Boost.Python', '1.66.0', '-Python-%(pyver)s'),
   ---
   >     ('Python', '3.7.4'),
   >     ('CUDA', '10.2.89', '', ('GCC', '8.3.0')),
   >     ('Boost.Python', '1.71.0'),

In particular, prebuildopts is the same, namely

   prebuildopts = "./configure.py --cuda-root=$EBROOTCUDA 
--boost-inc-dir=$EBROOTBOOST/include/boost/ "

However, my EC fails with the following error:

   == 2020-08-20 14:37:45,027 run.py:222 INFO running cmd:  pip install 
--prefix=/trinity/shared/easybuild/software/PyCUDA/2019.1.2-foss-2019b-Python-3.7.4
  --no-deps  --ignore-installed  --no-build-isolation  .
   == 2020-08-20 14:39:40,893 build_log.py:169 ERROR EasyBuild crashed with an error (at 
easybuild/software/EasyBuild/4.2.2/lib/python2.7/site-packages/easybuild/base/exceptions.py:124
 in __init__): cmd " pip install 
--prefix=/trinity/shared/easybuild/software/PyCUDA/2019.1.2-foss-2019b-Python-3.7.4  
--no-deps  --ignore-installed  --no-build-isolation  ." exited with exit code 1 and 
output:
   Processing /dev/shm/PyCUDA/2019.1.2/foss-2019b-Python-3.7.4/pycuda-2019.1.2
   Building wheels for collected packages: pycuda
     Building wheel for pycuda (setup.py): started
     Building wheel for pycuda (setup.py): finished with status 'error'
     ERROR: Command errored out with exit status 1:
      command: /trinity/shared/easybuild/software/Python/3.7.4-GCCcore-8.3.0/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = 
'"'"'/dev/shm/eb-CCA5_M/pip-req-build-me3t0nx8/setup.py'"'"'; __file__='"'"'/dev/shm/eb-CCA5_M/pip-req-build-me3t0nx8/setup.py'"'"';f=getattr(tokenize, 
'"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, 
'"'"'exec'"'"'))' bdist_wheel -d /dev/shm/eb-CCA5_M/pip-wheel-3qfyxeun --python-tag cp37
          cwd: /dev/shm/eb-CCA5_M/pip-req-build-me3t0nx8/
     Complete output (3278 lines):
     *************************************************************
     *** I have detected that you have not run configure.py.
     *************************************************************
     *** Additionally, no global config files were found.
     *** I will go ahead with the default configuration.
     *** In all likelihood, this will not work out.
     ***
     *** See README_SETUP.txt for more information.
     ***
     *** If the build does fail, just re-run configure.py with the
     *** correct arguments, and then retry. Good luck!

Does anyone have an idea as to why the configure step isn't being
carried out?

It's curious that is not a problem with the existing PyCUDA easyconfig...

When "use_pip" is enabled, 'prebuildopts' is basically (silently...) ignored because the "build" step is a no-op.

Try changing "prebuildopts =" to "preinstallopts"?


regards,

Kenneth


Cheers,

Loris

Reply via email to