如何从CMake将目录添加到PYTHONPATH?

3
我有一个C++库,其中包含了一个基于Boost.python的Python API库,它被包含在目录结构中。
module
|_python_files
|_cpp_files

有没有一种标准的方法来配置CMakelist,以便自动将包含Python文件的库添加到PYTHONPATH中?


如何在CMake中使用Python? - undefined
我们在Python目录中有一些脚本,还有从Boost.python生成的.so文件也放在那个库中。 - undefined
2个回答

3

根据文档,这应该是一个好办法:

set(ENV{PYTHONPATH} "${CMAKE_CURRENT_SOURCE_DIR}/module/python_files")

我没有测试过这个。

请注意,PYTHONPATH 环境变量是由 Python 解释器读取和使用的,而不是由 CMake 读取。当尝试定位 Python 代码导入的 Python 库时,Python 解释器会使用它。


3
如果您使用 FindPython,您应该能够使用。
Python_add_library (my_module MODULE src1.cpp)

或者您可以将路径添加到PYTHONPATH中:

list(append PYTHONPATH "${CMAKE_CURRENT_DIR}/module/python_files") 

否则,您需要将 python_files 添加到您的 Python 定义路径中:
export PYTHONPATH="${PYTHONPATH}:../module/python_files"

1
在Windows上,export PYTHONPATH="${PYTHONPATH}:../module/python_files" 这种写法是不起作用的,因为路径之间要使用分号 ; 来分隔。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接