Package Details: python2-scipy-mkl 1.0.0-3

Git Clone URL: https://aur.archlinux.org/python-scipy-mkl.git (read-only)
Package Base: python-scipy-mkl
Description: SciPy is open-source software for mathematics, science, and engineering.
Upstream URL: http://www.scipy.org/
Licenses: BSD
Conflicts: python2-scipy
Provides: python2-scipy=${pkgver}, scipy=${pkgver}
Replaces: python2-scipy
Submitter: bred
Maintainer: bred
Last Packager: bred
Votes: 20
Popularity: 1.581818
First Submitted: 2012-09-06 19:34
Last Updated: 2017-12-26 11:34

Required by (152)

Sources (3)

Latest Comments

alleut commented on 2018-02-08 19:15

How to tell builder what compiler to use?

Found executable /opt/intel/compilers_and_libraries_2018.1.163/linux/bin/intel64/icc customize IntelEM64TFCompiler
Found executable /opt/intel/compilers_and_libraries_2018.1.163/linux/bin/intel64/ifort
Traceback (most recent call last):
File "setup.py", line 418, in <module>setup_package()
File "setup.py", line 414, in setup_packagesetup(**metadata)
File "/usr/lib/python3.6/site-packages/numpy/distutils/core.py", line 169, in setupreturn old_setup(**new_attr)
File "/usr/lib/python3.6/site-packages/setuptools/__init__.py", line 129, in setupreturn distutils.core.setup(**attrs)
File "/usr/lib/python3.6/distutils/core.py", line 148, in setupdist.run_commands()
File "/usr/lib/python3.6/distutils/dist.py", line 955, in run_commandsself.run_command(cmd)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_commandcmd_obj.run()
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/build_clib.py", line 75, in runself.run_command('build_src')
File "/usr/lib/python3.6/distutils/cmd.py", line 313, in run_commandself.distribution.run_command(command)
File "/usr/lib/python3.6/distutils/dist.py", line 974, in run_commandcmd_obj.run()
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/build_src.py", line 148, in runself.build_sources()
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/build_src.py", line 165, in build_sourcesself.build_extension_sources(ext)
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/build_src.py", line 324, in build_extension_sourcessources = self.generate_sources(sources, ext)
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/build_src.py", line 377, in generate_sourcessource = func(extension, build_dir)
File "scipy/_lib/setup.py", line 32, in get_messagestream_configif config_cmd.check_func('open_memstream', decl=True, call=True):
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/config.py", line 312, in check_funcself._check_compiler()
File "/usr/lib/python3.6/site-packages/numpy/distutils/command/config.py", line 83, in _check_compilerself.fcompiler.customize(self.distribution)
File "/usr/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py", line 499, in customizeget_flags('opt', oflags)
File "/usr/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py", line 490, in get_flagsflags.extend(getattr(self.flag_vars, tag))
File "/usr/lib/python3.6/site-packages/numpy/distutils/environment.py", line 39, in __getattr__return self._get_var(name, conf_desc)
File "/usr/lib/python3.6/site-packages/numpy/distutils/environment.py", line 53, in _get_varvar = self._hook_handler(name, hook)
File "/usr/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py", line 697, in _environment_hookreturn hook()
File "/usr/lib/python3.6/site-packages/numpy/distutils/fcompiler/intel.py", line 125, in get_flags_optv = self.get_version()
File "/usr/lib/python3.6/site-packages/numpy/distutils/fcompiler/__init__.py", line 430, in get_versionraise CompilerNotFound()
numpy.distutils.fcompiler.CompilerNotFound

bred commented on 2017-12-26 11:40

The bug in icc 18.0.0 has been fixed in the icc 18.0.1.

If you are still using the icc 18.0.0 uncomment the lines 62 and 79. and comment out the lines 61 and 78.

hcb commented on 2017-12-04 09:57

Replacing .. with ${srcdir} worked for me:

# copy python3 build files
cp ${srcdir}/build_python3.sh scipy-${pkgver}

# copy python2 build files
cp -r scipy-${pkgver} scipy-${pkgver}-py2
cp ${srcdir}/build_python2.sh scipy-${pkgver}-py2

gwaterst commented on 2017-11-08 15:09

Yes, it probably is the BUILDDIR variable that changes the behaviour.

According to the documentation a proper solution would be to put the copy processes into a prepare() section and use $srcdir as target folder:

prepare() {
# copy python3 build files
cp build_python3.sh $srcdir/scipy-${pkgver}

# copy python2 build files
cp -r $srcdir/scipy-${pkgver} srcdir/scipy-${pkgver}-py2
cp build_python2.sh $srcdir/scipy-${pkgver}-py2
}

An alternative would be to use the $startdir variable instead of '../'

arvidsaur commented on 2017-11-08 14:01

@gwatterst well that did not work for me, could it be because I have set "BUILDDIR=/tmp/makepkg" ? this is the first pkgbuild that has failed for me with that setting, removing "../" worked for me.

gwaterst commented on 2017-11-08 12:39

@arvidsaur:
No, that should be correct, since "makepkg will change the current directory to $srcdir before executing the build()" (from the wiki page).

So, during build() we already are in src/ and the 2 shell scripts are still in ../

However, one might consider copying all the files during prepare()

arvidsaur commented on 2017-11-08 07:28

I think there is a minor error in the PKGBUILD it should be
"cp build_python3.sh scipy-${pkgver}" instead of "cp ../build_python3.sh scipy-${pkgver}" same for the python2 file.


bred commented on 2017-11-07 19:26

Now it works also with icc.
Thanks to all for the suggestions and the PKGBUILD !!!


gwaterst commented on 2017-11-07 09:42

I can confirm the hack of invik is working. The problem appears to be that the C sources need the set environment variable while compiling the C++ sources with the set environment variables returns an error.

I have outsourced the ever-repeating builds into a shell script that make it possible to build the package with a single makepkg command.

I'll send this version the the package maintainer.

invik commented on 2017-11-05 19:18

There is a very dumb hack to get the package to compile with the 2018 Intel compiler (the one with the _Float128 error): loop-compile 8 or 10 times (sorry, lost count), one prepending the '__INTEL_PRE_CFLAGS="$__INTEL_PRE_CFLAGS -D_Float128=__float128"' variable, one without. I.e.:

__INTEL_PRE_CFLAGS=" -D_Float128=__float128" python3 setup.py config --compiler=intelem --fcompiler=intelem build_clib --compiler=intelem --fcompiler=intelem build_ext --compiler=intelem --fcompiler=intelem
python3 setup.py config --compiler=intelem --fcompiler=intelem build_clib --compiler=intelem --fcompiler=intelem build_ext --compiler=intelem --fcompiler=intelem
[repeat these two another 4 times, to be sure, and it should be ready for packaging]

In other words: try compiling setting the __INTEL_PRE_CFLAGS, and as soon as it fails, launch compilation WITHOUT setting the environment variable. It will continue from where the first try failed, and so on, until it gets it done.

By the way: there is also a bug in the "package_python*-scipy-mkl()" functions in the PKGBUILD. Where it says:

python* setup.py config_fc --fcompiler=intel install --prefix=/usr --root=${pkgdir} --optimize=1

It should be "--fcompiler=intelem". It needs to be corrected, or else the packaging will fail.


You can find a fully working PKGBUILD here: https://pastebin.com/ncpPC1xY

All comments