Cygwin 在编译时安装 scipy 错误

问题描述 投票:0回答:1

我正在尝试用pip在cygwin下安装scipy,不幸的是我有一些编译错误!我附上日志文件。我在网上搜索过,但一无所获。

谢谢

2023-02-11T17:48:15,190 [250/1620] 编译 C++ 对象 scipy/special/_ufuncs_cxx.cpython-39-x86_64-cygwin.dll.p/_faddeeva.cxx.o

2023-02-11T17:48:15,191 失败:scipy/special/_ufuncs_cxx.cpython-39-x86_64-cygwin.dll.p/_faddeeva.cxx.o

2023-02-11T17:48:15,192 c++ -Iscipy/special/_ufuncs_cxx.cpython-39-x86_64-cygwin.dll.p -Iscipy/special -I../../scipy/special -I/tmp/pip -build-env-m1hcjhav/overlay/lib/python3.9/site-packages/numpy/core/include -I../../scipy/_lib/boost -Iscipy/_lib -I../../scipy /_lib -I../../scipy/_build_utils/src -I/usr/include/python3.9 -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid- pch -std=c++14 -O2 -Wno-cpp -MD -MQ scipy/special/_ufuncs_cxx.cpython-39-x86_64-cygwin.dll.p/_faddeeva.cxx.o -MF scipy/special/_ufuncs_cxx.cpython -39-x86_64-cygwin.dll.p/_faddeeva.cxx.o.d -o scipy/special/_ufuncs_cxx.cpython-39-x86_64-cygwin.dll.p/_faddeeva.cxx.o -c ../../scipy /special/_faddeeva.cxx

2023-02-11T17:48:15,193 ../../scipy/special/_faddeeva.cxx: 在函数‘npy_cdouble faddeeva_ndtr(npy_cdouble)’中:

2023-02-11T17:48:15,194 ../../scipy/special/_faddeeva.cxx:79:10: 错误:“M_SQRT1_2”未在此范围内声明;您是说“NPY_SQRT1_2”吗?

2023-02-11T17:48:15,196 79 | z *= M_SQRT1_2;

2023-02-11T17:48:15,199 | ^~~~~~~~~

2023-02-11T17:48:15,200 | NPY_SQRT1_2

2023-02-11T17:48:15,201 ../../scipy/special/_faddeeva.cxx: 在函数‘double faddeeva_log_ndtr(double)’中:

2023-02-11T17:48:15,202 ../../scipy/special/_faddeeva.cxx:108:18: error: 'M_SQRT1_2' was not declared in this scope;您是说“NPY_SQRT1_2”吗?

2023-02-11T17:48:15,203 108 |双 t = x*M_SQRT1_2;

2023-02-11T17:48:15,204 | ^~~~~~~~~

2023-02-11T17:48:15,205 | NPY_SQRT1_2

2023-02-11T17:48:15,206 ../../scipy/special/_faddeeva.cxx: 在函数‘npy_cdouble faddeeva_log_ndtr_complex(npy_cdouble)’中:

2023-02-11T17:48:15,207 ../../scipy/special/_faddeeva.cxx:130:53: error: 'M_SQRT1_2' was not declared in this scope;您是说“NPY_SQRT1_2”吗?

2023-02-11T17:48:15,208 130 |复数 w = -0.5 * Faddeeva::erfc(z*M_SQRT1_2);

2023-02-11T17:48:15,209 | ^~~~~~~~~

2023-02-11T17:48:15,210 | NPY_SQRT1_2

2023-02-11T17:48:15,211 ../../scipy/special/_faddeeva.cxx:136:11: 错误:“M_SQRT1_2”未在此范围内声明;您是说“NPY_SQRT1_2”吗?

2023-02-11T17:48:15,212 136 | z *= -M_SQRT1_2;

2023-02-11T17:48:15,218 | ^~~~~~~~~

2023-02-11T17:48:15,219 | NPY_SQRT1_2

2023-02-11T17:48:15,220 ../../scipy/special/_faddeeva.cxx:146:34: error: ‘M_PI’ was not declared in this scope

2023-02-11T17:48:15,221 146 |双 im = fmod(mIm_z2, 2.0*M_PI);

2023-02-11T17:48:15,223 | ^~~~

2023-02-11T17:48:15,224 ../../scipy/special/_faddeeva.cxx: 在函数‘double faddeeva_voigt_profile(double, double, double)’中:

2023-02-11T17:48:15,225 ../../scipy/special/_faddeeva.cxx:177:24: error: ‘M_PI’ was not declared in this scope

2023-02-11T17:48:15,226 177 |返回 gamma / M_PI / (x*x + gamma*gamma);

2023-02-11T17:48:15,227 | ^~~~

我希望找到解决这个编译问题的方法!由于我无法干预代码,所以我没有太多的行动空间。

scipy cygwin
1个回答
0
投票

我花了很多时间安装 scipy,但现在我成功了!

我在 Cygwin 上的配置:python 3.9.16 python3-devel 3.9.10.1

从github安装OpenBLAS git clone https://github.com/xianyi/OpenBLAS.git make;进行安装

然后pip install scipy==1.9.3(最后一个版本1.10.1不行!奇怪的错误:M_PI not definded in some step of cc compilation!?!?!)

最后我安装了 Scipy!!!!

另一种方式(更干净):为 windows 安装 python,更改 .bashrc 中的 PATH(首先放置路径 /cygdrive/c/Users/myusername/AppData/Local/Programs/Python/Python311)

© www.soinside.com 2019 - 2024. All rights reserved.