我使用CMake构建我的应用程序。如何找到python site packages目录的位置?我需要路径来编译python的扩展。
CMake必须能够在所有三个主要操作系统上找到路径,因为我计划在Linux、Mac和Windows上部署我的应用程序。
我试着用
include(FindPythonLibs)
find_path( PYTHON_SITE_PACKAGES site-packages ${PYTHON_INCLUDE_PATH}/.. )
但这不起作用。
我也可以通过跑步获得路径
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
在shell上,但是我如何从CMake调用它呢?
解决方案:
谢谢,亚历克斯。 所以给我site package dir的命令是:
execute_process ( COMMAND python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
需要OUTPUT_STRIP_TRAILING_WHITESPACE命令来删除后面的新行。
您可以使用execute_process在cmake中执行外部进程(如果需要,可以将输出转换为变量,就像这里一样)。
我用于lcm的稍微更新的版本:
这会将
PYTHON_SITE
设置为适当的前缀相对路径,适合如下使用:(请不要安装到绝对路径!这样做会绕过
CMAKE_INSTALL_PREFIX
。)由于CMake 3.12,您可以使用FindPython模块分别为独立于体系结构的库和特定库填充
Python_SITELIB
和Python_SITEARCH
变量。示例:
相关问题 更多 >
编程相关推荐