【发布时间】:2023-01-17 11:53:07
【问题描述】:
我在 Windows 上使用 WSL,在目录 /usr/include 中,我有一个名为 python3.8 的子目录。据我了解,/usr/include 包含 C 编译器的头文件。
我已经安装了 python3.10 但似乎 python3.8 默认存在于 WSL 中。因此,当我尝试使用 pybind11 与 C++ 进行 python 绑定时,我与 /usr/include 中的目录 python3.8 发生了一些冲突。
从我尝试在 C++ 中导入 pybind11 标头时得到的结果错误很明显,该程序正在寻找 /usr/include/python3.10(不存在)而不是 /usr/include/python3.8。
作为解决方案,我在/usr/include 中创建了一个名为python3.10 的新目录,并复制了/usr/include/python3.8 中的所有内容。因此,问题消失了,程序运行正常,但我不太确定这是最好的方法。
编辑:
CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.4)
project(pybindproject)
add_subdirectory(pybind11)
pybind11_add_module(module_name main.cpp)
我有 pybind11 使用:git clone https://github.com/pybind/pybind11.git
【问题讨论】:
-
请附上您的
setup.py和/或您的CMakeLists.txt,以便我们提供帮助。
标签: python linux windows-subsystem-for-linux pybind11