首页 > 编程语言 >python加载so库

python加载so库

时间:2023-08-29 13:57:54浏览次数:35  
标签:python CDLL GLOBAL so dlopen file RTLD 加载

from ctypes import CDLL, RTLD_GLOBAL
from ..anke import currentOS

class LoadSo:
    def __init__(self, soPath, args):
        if currentOS != 'darwin':
            for arg in args:
                """
                1、麒麟、UOS环境循环加载需要主动加载的so,可用
                2、mac环境调用dylib需要注释该循环,原因未知
                    报错:OSError("dlopen(, 0x000A): tried: '' (no such file), '/usr/lib/' (not a file), '/Users/mactest/Desktop/ANKE-C/' (not a file), '/usr/lib/' (not a file)")
                3、可能的原因:
                    主插件包是在本地加载的(RTLD_LOCAL),因此,除非使用显式的dlopen后跟dlsym,否则任何人都看不到任何符号。
                    如果是Linux,我可以通过使用RTLD_GLOBAL标志再次dlopen将该捆绑包升级到全局名称空间,但是在Mac OS X上则不起作用。 
                    但是Mac OS X很好地将内容打包到了包中,因此我只是制作了一个动态库并将其放入插件包目录中。 该库将作为RTLD_GLOBAL自动加载,并且所有Python符号均可用。
                """
                CDLL(arg, mode=RTLD_GLOBAL)
        self.xtx = CDLL(soPath)

 

标签:python,CDLL,GLOBAL,so,dlopen,file,RTLD,加载
From: https://www.cnblogs.com/wtxyear/p/17664538.html

相关文章

  • Python+协同过滤算法实现一个简单的图书推荐系统
    背景介绍当我们做一些推荐系统网站时,通常需要合适的推荐算法,下面给大家介绍推荐系统中经典的推荐算法——协同过滤算法。在本文中通过Python语言,以一个图书推荐系统为案例,最终实现一个基于用户对图书的评分而对指定的用户个性化推荐的网站系统。(ps:本文中介绍的是算法的简单示例,......
  • Gson与FastJson详解
    Gson与FastJson详解Java与JSON做什么?将Java中的对象快速的转换为JSON格式的字符串.将JSON格式的字符串,转换为Java的对象.Gson将对象转换为JSON字符串转换JSON字符串的步骤:引入JAR包在需要转换JSON字符串的位置编写如下代码即可:Stringjson=newGson().toJSON(......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-14-playwright操作iframe-番外
    1.简介通过前边三篇的学习,想必大家已经对iframe有了一定的认识和了解,今天这一篇主要是对iframe的一些特殊情况的介绍和讲解,主要从iframe的定位、监听事件和执行js脚本三个方面进行展开介绍。2.iframe定位2.1动态id属性如何定位有时候,我们可能看到的iframe的id不是固定的,是动......
  • CF1864C Divisor Chain
    思路刚拿到题,想了一些方法但都被推翻了,在这里列举出来,并给出反例:每次减去最小的因数,反例:\(1024\)等形如\(a^k\)的数,每次都会减去\(a\)导致\(a\)的出现次数超过\(2\)次。每次减去大于等于\(\sqrtx\)的因子,\(x\)为目前的数,并特判指数的情况,反例:\(35\)等由两个......
  • LED驱动,数码管显示芯片VK1S68C SSOP24资料表
    VK1S68C是一种带键盘扫描接口的数码管或点阵LED驱动控制芯片,内部集成有3线串行接口、数据锁存器、LED驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持13SEGx4GRID、12SEGx5GRID、11SEGx6GRID、10SEGx7GRID的点阵LED显示面板,最大支持10x2按键。适用于要求可靠、稳定和......
  • Python连接Neo4j工具比较 Neo4j Driver、py2neo
    Python有许多可以连接Neo4j的库和工具,以下是一些常用的:Neo4jDriverforPython这是官方提供的Python驱动程序,它使用Cypher查询语言与Neo4j数据库进行交互。您可以使用此驱动程序与Neo4j数据库建立连接,执行查询和管理事务。优点:官方提供的驱动程序,支持最新的Neo4j版本,提供完整......
  • Python学习 -- 枚举类
    当谈到在Python中管理一组常量或者枚举类型的时候,Enum(枚举)类是一个非常有用的工具。Python的Enum类允许你创建具有有意义的、可读性高的常量集合,而不必使用硬编码的数字或字符串。在本篇博客中,我们将深入探讨Python中的Enum类,包括如何定义、使用和高级技巧,同时提供详细的代码案例。......
  • 安装python3.5并在QT中配置使用
    一、安装32位的python3.5及各种库链接:https://pan.baidu.com/s/1q94_Vo3XDhfZ_hmssPjz6w提取码:zotf先在dos环境下输入python,如果显示版本则表示python安装成功,安装库文件的时候,在dos环境下进入whl文件所在的目录,然后使用pipinstall***-whl。如果提示pip版本过低,则按照提示更新pip......
  • python工程打包可执行exe
    1、打包配置文件HuiMergeDemo_x64.spec#-*-mode:python;coding:utf-8-*-block_cipher=Nonea=Analysis(['HuiMergeDemo.py','D:\\HuiMerge\\__init__.py'],pathex=['D:\\HuiMerge'],binaries=[]......
  • COMSOL 液滴自运输模型搭建
    新建二维模型几何-先确定长度单位为mm几何-矩形-宽度设置8mm,高度2mm几何-圆-扇形角设置180deg形成联合体-全部构建  ......