浅析python 动态库m.so.1.0错误问题


Posted in Python onMay 09, 2020

$ python -V
python: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

ldd是列出动态库依赖关系:

$ ldd /usr/local/bin/python3.6

linux-vdso.so.1 => (0x00007fffecbba000)
libpython3.6m.so.1.0 => not found
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fe1400ff000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fe13fefb000)
libutil.so.1 => /usr/lib64/libutil.so.1 (0x00007fe13fcf8000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fe13f9f6000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fe13f628000)
/lib64/ld-linux-x86-64.so.2 (0x00007fe14031b000)

查找动态库:

$ find / -name 'libpython3.6m.so.1.0'

/root/Python-3.6.9/libpython3.6m.so.1.0
/usr/local/lib/libpython3.6m.so.1.0

(2)将libpython3.6m.so.1.0文件路径的目录添加到/etc/ld.so.conf :

$ vim /etc/ld.so.conf 
文件末尾新添加一行,/usr/local/lib/

(3)保存,使得修改生效:

$ ldconfig

ps:下面看下python中使用动态库的方法

首先,创建一个简单的动态库

编程生成dll.so:   gcc -fPIC -O2 -shared dll.c -o dll.so
C文件:dll.c  如下

#include <stdio.h>

struct param {
  int a;
  int b;
  char c;
  float f;
  int arr[3];
  };
  
void print0(struct param arg)
{
  printf("in print:\n");
  printf("a: %d\n", arg.a);
  printf("b: %d\n", arg.b);
  printf("c: %c\n", arg.c);
  printf("f: %f\n", arg.f);
  printf("arr: %d %d %d\n", arg.arr[0], arg.arr[1], arg.arr[2]);
}

void print2(struct param *arg)
{
  printf("in print2 :\n");
  printf("a: %d\n", arg->a);
  printf("b: %d\n", arg->b);
  printf("c: %c\n", arg->c);
  printf("f: %f\n", arg->f);
  printf("arr: %d %d %d\n", arg->arr[0], arg->arr[1], arg->arr[2]);
}

void print3(int a)
{
  printf("in print3:\n");
  printf("a: %d\n", a);
}

python定义传给动态库的结构体

from ctypes import *

class ss(Structure):
  _fields_ = [
  ("a", c_int),
  ("b", c_int),
  ("c", c_char),
  ("f", c_float),
  ("arr", c_int*3), //定义数组
  ]

python 使用dll.so实例

#加载动态库
fileName = "/home/primax/Desktop/Work/Test/python/dll.so"
lib = cdll.LoadLibrary(fileName)
#定义变量
param = ss()
#给结构体赋值
param.a = 1
param.b = 2
param.c = 'a'
param.f = 1.2345
param.arr[0] = 0
param.arr[1] = 1
param.arr[2] = 2

lib.print0(param)
lib.print3(2)
#传指针 pointer取指针
lib.print2(pointer(param))

总结

到此这篇关于浅析python 动态库m.so.1.0错误问题的文章就介绍到这了,更多相关python m.so.1.0内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中获取对象信息的方法
Apr 27 Python
Python循环语句中else的用法总结
Sep 11 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
Python for循环中的陷阱详解
Jul 13 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
PyQt5显示GIF图片的方法
Jun 17 Python
pandas如何处理缺失值
Jul 31 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python将print输出的信息保留到日志文件中
Sep 27 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 #Python
Python发送邮件封装实现过程详解
May 09 #Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 #Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 #Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 #Python
Python接口测试数据库封装实现原理
May 09 #Python
解决pycharm安装第三方库失败的问题
May 09 #Python
You might like
制作美丽的拉花
2021/03/03 冲泡冲煮
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
TensorFlow实现创建分类器
2018/02/06 Python
python如何修改装饰器中参数
2018/03/20 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
四年级评语大全
2014/04/21 职场文书
投标服务承诺书
2014/05/28 职场文书
公司贷款承诺书
2014/05/30 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
端午节寄语2015
2015/03/23 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
中秋节感想
2015/08/10 职场文书
关于运动会的广播稿
2015/08/19 职场文书
Python中的 No Module named ***问题及解决
2022/07/23 Python