浅析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的装饰器的运用
May 05 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
简单谈谈python中的多进程
Nov 06 Python
利用python将图片转换成excel文档格式
Dec 30 Python
基于python代码实现简易滤除数字的方法
Jul 17 Python
基于python if 判断选择结构的实例详解
May 06 Python
PyQt5 QTable插入图片并动态更新的实例
Jun 18 Python
django中SMTP发送邮件配置详解
Jul 19 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
Python 绘制可视化折线图
Jul 22 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
PHP入门
2006/10/09 PHP
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
高质量PHP代码的50个实用技巧必备(上)
2016/01/22 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
JS中对Cookie的操作详解
2016/08/05 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
js实现碰撞检测
2021/01/29 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
大学生自荐信
2013/12/11 职场文书
物流仓管员工作职责
2014/01/06 职场文书
师德师风承诺书
2014/05/23 职场文书
经济类毕业生求职信
2014/06/26 职场文书
工程造价专业求职信
2014/07/17 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2014年幼儿园工作总结
2014/11/10 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
56句经典英文座右铭
2019/08/09 职场文书
创业计划书之面包店
2019/09/17 职场文书
python某漫画app逆向
2021/03/31 Python