【问题标题】:Python .pyd equivalent on linuxLinux 上的 Python .pyd 等效项
【发布时间】:2017-02-11 14:09:33
【问题描述】:

我有一些使用 boost 作为 python 模块工作的 c++ 代码。 它实际上是另一个 c++ python 模块的插件。

在 Windows 上,我必须链接到该库的 libavg.pyd 文件。

在 linux 上,我尝试链接 libavg.so,但这样做时,dlopen 失败,未定义对应在 libavg.pyd 中定义的函数的引用。

在 linux 上链接到 .pyd 文件的等价物是什么?

【问题讨论】:

    标签: python c++ linux python-2.7


    【解决方案1】:

    在 linux 上,.pyd 等价于 .so 文件。

    我不知道 Boost::Python 的细节,但你可以尝试使用这样的脚本:

    from distutils.core import setup, Extension
    
    module = Extension('ModuleName', sources=['yourmodule.cpp'], language="c++")
    
    setup(name="ModuleName",
          version='1.0',
          description='My package',
          ext_modules=[module])
    

    在此之后,只需使用 .so-extension 导入您构建的模块。

    【讨论】:

    • 没关系,对于 Windows 上的那个库,它只有一个 .pyd,而在 linux 上我必须链接到大约 10 个 .so 文件。
    猜你喜欢
    • 2018-11-26
    • 2012-11-08
    • 1970-01-01
    • 2010-09-14
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多