【问题标题】:How to run .so files using through python script如何通过 python 脚本运行 .so 文件
【发布时间】:2018-08-01 20:26:29
【问题描述】:

我有一个 c 程序(.c 文件)。我正在将其转换为共享对象(.so)。如何从我的 python 代码调用和运行共享对象?如果可能,请向我推荐一个可以帮助我完成这项任务的库列表。

【问题讨论】:

  • C 库是否意味着要从 Python 调用?
  • 我只是想执行该文件,例如调用不带参数的python函数并将结果存储在python变量中以便在python中进一步执行。希望你能理解我的问题。

标签: python cython shared-objects


【解决方案1】:

注意那些使用推荐方法的人。它不适用于windows,适用于linux,windows函数的代码如下:

from ctypes import *
libc = cdll.msvcrt

然后调用它,

print(libc.time(None))

【讨论】:

    【解决方案2】:

    如果您想在共享对象中调用函数,标准模块ctypes 就是您所追求的。不需要任何外部库。

    加载库:

    from ctypes import *
    # either
    libc = cdll.LoadLibrary("libc.so.6")
    # or
    libc = CDLL("libc.so.6")
    

    然后从库中调用一个函数,和调用Python函数一样:

    print(libc.time(None))
    

    【讨论】:

    • 你的意思是libc=cdll.LoadLibrary("libc.so.6")
    • 我已经编辑了我的示例,以包含标准库示例中的第二种方法,即引用发生的位置。
    • 我们从libc调用的函数如何传参?
    猜你喜欢
    • 2023-01-08
    • 1970-01-01
    • 2011-11-14
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多