问题现象
在Slackware64 13.37系统上编译Scribes Editor时,配置脚本报错提示找不到PyGTKSpell的Python绑定:
Error: Python bindings for gtkspell was not found.
configure: error: Error: Dependency check failed
尽管已安装以下软件包:
gtkspell-2.0.16-x86_64-1
pygtkspell-2.25.3-i486-3sl
路径差异分析
系统实际安装路径与配置脚本查找路径存在差异:
- 实际路径:
/usr/lib/python2.6/site-packages/gtk-2.0/
- 查找路径:
${prefix}/lib64/python2.6/site-packages
解决方案
方法一:创建符号链接
sudo ln -s /usr/lib/python2.6/site-packages/gtk-2.0/gtkspell.* \
/usr/lib64/python2.6/site-packages/
方法二:修改环境变量
export PYTHONPATH=/usr/lib/python2.6/site-packages/gtk-2.0:$PYTHONPATH
./autogen.sh
方法三:手动指定路径
修改configure.ac文件,添加以下内容:
AC_SUBST([PYGTKSPELL_DIR], ["/usr/lib/python2.6/site-packages/gtk-2.0"])
验证方法
在Python交互环境中测试是否成功加载模块:
import sys
sys.path.append('/usr/lib/python2.6/site-packages/gtk-2.0')
import gtkspell
print(gtkspell.__file__)
兼容性说明
由于Slackware64使用lib64目录结构,而Python包默认安装到lib目录,建议创建以下软链接:
sudo ln -s /usr/lib/python2.6 /usr/lib64/python2.6
编译参数建议
完整编译命令示例:
CFLAGS="-I/usr/include/gtkspell-2.0" \
LDFLAGS="-L/usr/lib -lgtkspell" \
PYTHONPATH=/usr/lib/python2.6/site-packages \
./autogen.sh --prefix=/usr