【问题标题】:How to pack boost.python so into a python module [closed]如何将 boost.python 打包到 python 模块中[关闭]
【发布时间】:2022-01-18 12:08:46
【问题描述】:

我已经使用boost.python创建了一个so文件,在bash中导入就可以了。

direct import like this

但现在我想知道是否可以将其设为常规 python 模块。这意味着我不想手动将 so 文件及其依赖项放在系统路径中,或者每次使用时都添加 LD_LIBRARY_PATH 。 有什么方法可以实现吗?

【问题讨论】:

  • “在 bash 中导入文件”是什么意思?
  • “so 文件”是指共享库(名称以“.so”结尾的文件)?
  • 使用 cython。就个人而言,在生成模块文件时,我倾向于使用静态链接,以便它作为具有最小依赖关系的共享对象。

标签: python c++ boost-python


【解决方案1】:

您可以使用distutils 创建一个模块。例如setup.py

from distutils.core import setup, Extension

ext_instance = Extension(
    'mylib_ext',
    sources=['main.cpp'],
    libraries=['boost_python-mt'],
)

setup(
    name='mylib',
    version='0.1',
    ext_modules=[ext_instance],
)

然后在本地构建python setup.py build或者在当前环境安装python setup.py install

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 2019-01-15
    • 2015-10-19
    • 1970-01-01
    • 2012-10-07
    • 2020-08-27
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    相关资源
    最近更新 更多