小编Ste*_*ott的帖子

如何在pybind11项目中设置包含路径

我有一个大型 C++ 库,我试图使用 pybind11 公开它。我在正确设置包含路径时遇到问题。

项目目录结构如下:

root
- sub-project-1
  -> C++ files that know nothing about python.
- sub-project-2
  -> more C++ files
  -> sub-sub-project
     -> even more C++ files
- sub-project-3
  -> et cetera
- Interfaces
  -> R
     -> R interface stuff
  -> python
     -> package_name
        -> setup.py
        -> pybind11_bindings.cpp 
Run Code Online (Sandbox Code Playgroud)

setup.py 文件当前如下所示。该结构主要是从 pybind11 文档复制的。

    from setuptools import setup, Extension
    from setuptools.command.build_ext import build_ext
    import sys
    import setuptools
    from glob import glob

    __version__ = '0.0.1'


    class get_pybind_include(object):
        """Helper class to …
Run Code Online (Sandbox Code Playgroud)

c++ python setuptools pybind11

7
推荐指数
1
解决办法
2923
查看次数

在包含 pybind11 包装的 C++ 的 python 代码上运行 santizer(ubsan、asan 等)

我维护一个大型 C++ 库,我使用 pybind11 部分接触了 python。C++ 库包含单元测试,我有时会在各种清理程序下运行这些测试:asan、tsan 等。这些测试运行干净,但当然测试并不完美,您无法 100% 测试所有边缘情况。

当我使用具有特定设置、特定数据集和各种选项的库时,有一个特定的 jupyter 笔记本会崩溃,这些选项可以在纯 C++ 环境中复制,但这种复制将非常耗费人力、时间并且容易出错。

如果我面前有纯 C++,我会通过 ubsan、asan 等运行笔记本,以确保我没有看到未定义的行为或段错误。有没有办法可以将这些消毒剂(或类似的东西)应用到我的笔记本上,而无需用原始 C++ 重写所有 python 胶水?

c++ python address-sanitizer ubsan pybind11

5
推荐指数
0
解决办法
472
查看次数

标签 统计

c++ ×2

pybind11 ×2

python ×2

address-sanitizer ×1

setuptools ×1

ubsan ×1