当前位置: 首页 > article >正文

运行python程序报错 undefined symbol: ffi_type_uint32 的参考解决方法

文章目录

  • 写在前面
  • 一、问题描述
  • 二、解决方法
  • 参考链接

写在前面

自己的测试环境:
Ubuntu20.04
ROS-Noetic

一、问题描述

运行 python 程序出现如下问题:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/wong/ProgramFiles/anaconda3/envs/pytorch_env/lib/python3.8/site-packages/gi/__init__.py", line 40, in <module>
    from . import _gi
ImportError: /lib/x86_64-linux-gnu/libgobject-2.0.so.0: undefined symbol: ffi_type_uint32, version LIBFFI_BASE_7.0

二、解决方法

这个错误表明你在使用 gi 时遇到了 libgobject-2.0.so.0 库和 libffi 库之间的依赖问题,具体是缺少了 ffi_type_uint32 这个符号。通常这种问题是由于 libffi 库版本不匹配或者依赖库没有正确链接导致的.
运行以下命令:

ldconfig -p | grep libffi

输出类似于下述的结果:
在这里插入图片描述
可以看到这里有多个版本的 libffi.so , 这导致在某些情况下,Python 可能会加载错误的 libffi 版本。你可以通过设置 LD_PRELOAD 来强制加载正确的 libffi 库。

运行以下命令,此命令会强制 python 加载你系统中的 libffi.so.7 版本:

LD_PRELOAD=/lib/x86_64-linux-gnu/libffi.so.7 python -c "import gi; print(gi.__version__)"

如果返回类似于版本号的输出,比如3.48.2,说明Python 可能加载错误的 libffi 版本,导致的 undefined symbol: ffi_type_uint32 的问题。因此需要在 .bashrc 中增加下列指令:

export LD_PRELOAD=/lib/x86_64-linux-gnu/libffi.so.7
# 如果有多个 LD_PRELOAD 的变量,则把 libffi.so.7 放在前面,确保它首先加载 libffi.so.7,然后再加载其他的 libffi.
# export LD_PRELOAD=/lib/x86_64-linux-gnu/libffi.so.7:/usr/lib/x86_64-linux-gnu/libtiff.so.5

然后执行下列指令,使配置生效:

source ~/.bashrc

然后重新执行自己的python程序即可解决问题。

参考链接

[1] chat.


http://www.kler.cn/a/459292.html

相关文章:

  • 零基础WPF使用NLog记录日志
  • YIG带通滤波器
  • TI毫米波雷达原始数据解析之Lane数据交换
  • 在Typora中实现自动编号
  • 拟声 0.60.0 | 拟态风格音乐播放器,支持B站音乐免费播放
  • 高频java面试题
  • 马原复习笔记
  • AWS K8s 部署架构
  • 在云服务器中编译IDF(ESP32库)
  • 2024年个人总结
  • 使用 PyInstaller 和 hdiutil 打包 Tkinter 应用为 macOS 可安装的 DMG 文件
  • 统计颜色Count Color(POJ2777)题解
  • 【UE5 C++课程系列笔记】16——DeveloperSettings(开发者设置)的基本使用——创建配置文件
  • 【linux进程】进程终止进程等待
  • CSS(层叠样式表)基础选择器,文字控制属性
  • SpringBoot发邮件(带附件)
  • 《Vue进阶教程》第二十九课:立即执行的回调
  • OpenTK 光照与材质详解
  • 瓷砖缺陷检测数据集,使用yolo,coco json,pasical voc xml格式标注,可识别边缘崩裂,破洞,裂缝等缺陷,一共7992张原始图
  • 批量新建日报表只需10秒-Excel易用宝
  • HarmonyOS初步探索
  • [羊城杯 2024]miaoro
  • 嵌入科技的温情
  • 你有哪些Deep Learning(RNN、CNN)调参的经验?
  • Mysql(MGR)和ProxySQL搭建部署-Docker版本
  • 《云原生安全攻防》-- K8s安全配置:CIS安全基准与kube-bench工具