我使用pybind11将模块_cxx
添加到现有的python库liba
。
在编译c ++扩展并按liba._cxx.func
安装整个库之前,setup.py
不存在。
当我在liba/tests/test__cxx.py
中运行测试时,它会抱怨它无法导入liba._cxx
如何解决这个问题?
答案 0 :(得分:0)
来自pytest cannot import module while python can
删除测试文件夹中的__init__.py
。这样,测试将使用系统中安装的liba
而不是源代码中的liba
。
答案 1 :(得分:0)
我必须在 conftest.py 中指定路径
^(https?:\/\/)((?:[^.\/]+\.)*?)([^.\/\n]+)(\.[^.\/]+)?$
^(https?://)((?:[^./]+\.)*?)([^./]+)(\.[^./]+)?$
pytest 也无法处理 c++ 模块与 python 模块同名的特定情况。我必须遵循那里的约定:
https://github.com/pybind/pybind11/issues/1004#issuecomment-322941844
现在我可以使用 pybind11 定义一个包含纯 python 和 c++ 扩展模块并使用 pytest 进行测试的模块。