您的位置:首页 > 其它

scipy在cygwin的安装

2017-08-31 16:15 316 查看
折腾一天,总结一下:

下载lapack-3.7.1,拷贝install目录下的make.inc.gfortran.到上一级目录,改名make.inc

OPTS    = -O2 -frecursive -m64 -fPIC

DRVOPTS = $(OPTS)

NOOPT   = -O0 -frecursive -m64 -fPIC

加上m64,fPIC对于amd64没用,加上无妨

make

然后到CBLAS目录下make,生成libcblas.a

在scipy源代码目录site.cfg文件中加入

[cblas]

library_dirs = /home/wuzhiqiao/lapack-3.7.1/lapack-3.7.1

blas_libs = cblas

extra_compile_args =-m64

[blas]

library_dirs = /home/wuzhiqiao/lapack-3.7.1/lapack-3.7.1

blas_libs = blas

extra_compile_args =-m64

[lapack]

library_dirs = /home/wuzhiqiao/lapack-3.7.1/lapack-3.7.1

lapack_libs = lapack

extra_compile_args =-m64

再修改F:\cygwin64\lib\python2.7\site-packages\numpy\distutils\system_info.py文件

加入extra_preargs="-m64"

    def has_cblas(self, info):

        # primitive cblas check by looking for the header and trying to link

        # cblas or blas

        res = False

        c = distutils.ccompiler.new_compiler()

        c.customize('')

        tmpdir = tempfile.mkdtemp()

        s = """#include <cblas.h>

        int main(int argc, const char *argv[])

        {

            double a[4] = {1,2,3,4};

            double b[4] = {5,6,7,8};

            return cblas_ddot(4, a, 1, b, 1) > 10;

        }"""

        src = os.path.join(tmpdir, 'source.c')

        try:

            with open(src, 'wt') as f:

                f.write(s)

            try:

                # check we can compile (find headers)

                obj = c.compile([src], output_dir=tmpdir,

                                include_dirs=self.get_include_dirs(), extra_preargs="-m64")

最后在scipy根目录下python setup.py install,这样可以不用编译MKL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息