我使用Python虚拟环境。基本上,它工作正常,但是在编译一些Python绑定(bind)(即libIGL和pybind11)时遇到问题。

CMake具有以下与Python相关的变量:

 PYTHON_EXECUTABLE                /users/me/libs/pyvenv/bin/python
 PYTHON_INCLUDE_DIR               /usr/include/python2.7
 PYTHON_LIBRARY                   /usr/lib64/libpython2.7.so

看来它可以正确地检测到可执行文件,它是先前激活的虚拟环境的python3.5 ,但是它为include和library找到了一些错误的2.7路径。

因此,我只想手动将这些路径设置为我的虚拟环境。我浏览了虚拟环境的目录结构,我认为我在/users/me/libs/pyvenv/include/python3.5m中找到了includes。但是我找不到libpython*,在我的虚拟环境中根本没有*.so文件。那么在那种情况下我应该使用哪个库?

最佳答案

限制python库以匹配cmake中找到的解释器的版本:

find_package(PythonInterp REQUIRED)
find_package(PythonLibs "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}" REQUIRED )

或如果cmake> = 3.12可用,则使用FindPython

关于python - 使用Python虚拟环境时,include和lib在哪里?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45755341/

10-11 23:19