我试图为FFTWC库安装Python包装器pyFFTW,但似乎无法了解问题所在。
我从官方页面下载了FFTW(版本3.3.6,fftw-3.3.6-pl2.tar.gz),并使用$ ./configure
$ make
$ sudo make install
如提供的自述文件中所述。然后我就跑
^{pr2}$
按照website上的建议。终端给我这个输出:$ pip install pyfftw
Collecting pyfftw
Using cached pyFFTW-0.10.4.tar.gz
Building wheels for collected packages: pyfftw
Running setup.py bdist_wheel for pyfftw ... error
Complete output from command /anaconda2/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ONw2sB/pyfftw/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 /tmp/tmprNCz7Kpip-wheel- --python-tag cp27:
.
. (shortened by me)
.
In file included from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1777:0,
from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from /tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c:462:
/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
^
/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c: In function ‘__pyx_f_6pyfftw_6pyfftw_byte_align.isra.48.constprop’:
/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c:3086:6: warning: ‘__pyx_v_update_dtype’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (__pyx_t_1) {
^
gcc -pthread -shared -L/anaconda2/lib -Wl,-rpath=/anaconda2/lib,--no-as-needed build/temp.linux-x86_64-2.7/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.o -L/anaconda2/lib -lfftw3 -lfftw3f -lfftw3l -lfftw3_threads -lfftw3f_threads -lfftw3l_threads -lpython2.7 -o build/lib.linux-x86_64-2.7/pyfftw/pyfftw.so
/usr/bin/ld: //usr/local/lib/libfftw3.a(apiplan.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
//usr/local/lib/libfftw3.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
----------------------------------------
Failed building wheel for pyfftw
Running setup.py clean for pyfftw
Failed to build pyfftw
.
. (shortened by me)
.
In file included from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1777:0,
from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18,
from /anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from /tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c:462:
/anaconda2/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it by " \
^
/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c: In function ‘__pyx_f_6pyfftw_6pyfftw_byte_align.isra.48.constprop’:
/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.c:3086:6: warning: ‘__pyx_v_update_dtype’ may be used uninitialized in this function [-Wmaybe-uninitialized]
if (__pyx_t_1) {
^
gcc -pthread -shared -L/anaconda2/lib -Wl,-rpath=/anaconda2/lib,--no-as-needed build/temp.linux-x86_64-2.7/tmp/pip-build-ONw2sB/pyfftw/pyfftw/pyfftw.o -L/anaconda2/lib -lfftw3 -lfftw3f -lfftw3l -lfftw3_threads -lfftw3f_threads -lfftw3l_threads -lpython2.7 -o build/lib.linux-x86_64-2.7/pyfftw/pyfftw.so
/usr/bin/ld: //usr/local/lib/libfftw3.a(apiplan.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
//usr/local/lib/libfftw3.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
我怀疑这和丢失的包裹有关,但谁知道。。。我检查了所有的要求,应该安装了所有的程序来使用FFTW和setuptools等等。我甚至尝试从github源代码构建,但这给了我同样的错误。
有什么关于我可能做错什么的建议吗?在
PS:很抱歉终端输出太长。。。我已经把它缩短为(imo)的重要部分。在
提前感谢您的帮助!在
梅泰格