python - 使用 Python 虚拟环境时,include 和 libs 在哪里?

标签 python cmake virtualenv pybind11

我使用 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,但是它发现了一些错误的2.7路径,包括和库。

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

最佳答案

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

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

或者使用FindPython如果 cmake>=3.12 可用

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

相关文章:

java - 为 Mac 构建 OpenCV JDK 6 32 位

c++ - 如何使用 CMake 包含 NTL

从 requirements.txt 安装 python pip 问题

python - 散点图图例仅显示一个带颜色的变量 -Pandas Seaborn

python - 简单的 python 正则表达式,冒号后匹配

python - 每个单词之间的空格数

Python 单元测试和多线程

c++ - Ubuntu 上编译 MRPT 教程

python - 找不到满足 pytz 要求的版本

python - cxfreeze 在 vi​​rtualenv 中缺少 distutils 模块