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

运行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.lryc.cn/news/512541.html

相关文章:

  • 怎么使用阿里的docker国产镜像源
  • cloudns二级免费域名python更新ipv6 dns记录
  • nginx中try_files $uri $uri index.html的作用 和 $uri的含义
  • 高转化的Facebook广告文案的秘诀
  • CentOS修改docker镜像存储位置并进行数据迁移
  • ES7+ React/Redux/GraphQL/React-Native snippets 使用指南
  • 【ARM】PK51关于内存模式的解析与区别
  • Linux高级--2.4.5 靠协议头保证传输的 MAC/IP/TCP/UDP---协议帧格式
  • 【每日学点鸿蒙知识】输入法按压效果、web组件回弹、H5回退问题、Flex限制两行、密码输入自定义样式
  • 制造BOM的应用思考
  • 嵌入式硬件杂谈(八)电源的“纹波”到底是什么?
  • 保姆级教程Docker部署ClickHouse镜像
  • 【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
  • 【前端,TypeScript】TypeScript速成(七):数组与函数式编程相结合
  • 第十六届蓝桥杯模拟赛(第一期)(C语言)
  • Linux应用软件编程-多任务处理(管道)
  • 如何在鸿蒙本地模拟器中使用HDC工具
  • 《Vue进阶教程》第三十一课:ref的初步实现
  • C语言初阶习题【19】三子棋游戏
  • Linux day 1129
  • 【优化算法】梯度优化算法:一种新的原启发式优化算法算法
  • 内部类(3)
  • svn分支相关操作(小乌龟操作版)
  • rust_shyper
  • HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
  • 【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享
  • REDIS的集群
  • 酒店管理系统的设计与实现【源码+文档+部署讲解】
  • [论文阅读] (34)ESWA2024 基于SGDC的轻量级入侵检测系统
  • 从社区共识到资本效能:解析SYNBO的去中心化投资协议创新