Mac OSX环境下pip安装pyfftw失败:无法找到FFTW库求助
解决conda环境中pip安装pyfftw找不到fftw3f库的问题
方法1:安装时直接指定FFTW路径
激活conda环境后,通过pip安装时直接传入FFTW的安装路径(brew安装的FFTW路径可通过brew --prefix fftw获取):
pip install pyfftw --install-option="--fftw-dir=$(brew --prefix fftw)"
或者临时设置编译链接变量后安装:
export LDFLAGS="-L$(brew --prefix fftw)/lib" export CFLAGS="-I$(brew --prefix fftw)/include" pip install pyfftw
方法2:让conda环境继承系统环境变量
conda默认会隔离部分系统环境变量,可修改配置让其保留必要的路径设置:
conda config --set preserve_env true
重新激活conda环境后再尝试安装。若担心环境冲突,安装完成后可改回默认设置:
conda config --set preserve_env false
方法3:在conda环境内永久配置变量
激活目标conda环境,创建环境激活时自动加载的脚本:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d touch $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
编辑env_vars.sh写入以下内容:
#!/bin/bash export PATH="$(brew --prefix fftw)/bin:$PATH" export DYLD_LIBRARY_PATH="$(brew --prefix fftw)/lib:$DYLD_LIBRARY_PATH" export LDFLAGS="-L$(brew --prefix fftw)/lib" export CFLAGS="-I$(brew --prefix fftw)/include"
再创建环境退出时恢复变量的脚本:
mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d touch $CONDA_PREFIX/etc/conda/deactivate.d/env_vars.sh
写入:
#!/bin/bash export PATH=${PATH#$(brew --prefix fftw)/bin:} export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH#$(brew --prefix fftw)/lib:} unset LDFLAGS CFLAGS
之后每次激活该conda环境,都会自动加载FFTW的相关路径配置。
方法4:改用conda安装FFTW
放弃brew安装的FFTW,直接通过conda安装依赖库,让pyfftw自动识别:
conda install -c conda-forge fftw pip install pyfftw
内容的提问来源于stack exchange,提问作者R.U.
相关产品推荐
相关产品推荐

