Linux下导入ctypes报错libffi.so.5无法打开,无权限安装如何解决?
解决libffi.so.5找不到的问题
可能的原因及解决步骤
确认LD_LIBRARY_PATH是否生效
先在终端执行echo $LD_LIBRARY_PATH,检查你添加的my/home/libffi/lib、my/home/libffi/lib64路径是否在输出结果里。如果没显示,说明环境变量没正确设置:- 若为临时设置,要确保运行Python前变量已生效;
- 若在
.bashrc/.zshrc中配置,需执行source ~/.bashrc(或对应shell配置文件)重新加载,或重启终端。
检查编译的libffi版本是否匹配
进入my/home/libffi/lib目录,执行ls -l查看是否存在libffi.so.5(或指向它的软链接)。如果编译出的是更高版本(如libffi.so.8),则需重新编译对应版本的libffi源码(比如libffi-3.4.4版本对应libffi.so.5)。强制Python加载指定libffi库
若LD_LIBRARY_PATH仍不生效,可尝试用LD_PRELOAD强制指定库路径:LD_PRELOAD=my/home/libffi/lib/libffi.so.5 python your_script.py也可以用
ldd $(which python)查看当前Python依赖的libffi路径,确认是否指向你编译的目录。自行编译Python并指定libffi路径
如果以上方法都无效,说明系统自带的Python默认依赖系统libffi,此时可自行编译Python到个人目录:- 下载目标版本的Python源码;
- 配置编译参数时指定libffi路径:
./configure --prefix=my/home/python --with-libffi=my/home/libffi - 完成编译安装后,使用
my/home/python/bin/python运行脚本,即可让Python直接调用你编译的libffi。
内容的提问来源于stack exchange,提问作者hshsvagen
相关产品推荐
相关产品推荐

