是否有任何独立于平台的方法来获取python安装的libpython的路径,以用作cmake参数? sysconfig.get_config_var
提供了一些内容,但是没有一致的方法可以使这个工作。
在OSX上:
sysconfig.get_config_var('LIBDIR')
返回libpython2.7.dylib所在的目录(/usr/local/opt/python/Frameworks/Python.framework/Versions/2.7/lib)编辑:当sysconfig报告符号链接时以及报告实际路径时,似乎存在一些差异。 LIBDIR
确实包含libpython.2.7.dylib,但我刚注意到的是这是/usr/local/Cellar/python/2.7.13_1/Frameworks/Python.framework/Versions/2.7/的符号链接蟒。
INSTSONAME
指向Python.framework / Versions / 2.7 / Python,该路径的基本名称,但没有变量,我可以找到该路径的父部分。
在Ubuntu上:
sysconfig.get_config_var('INSTSONAME')
给我了库的名称(libpython2.7.so.1.0)。LIBDIR
仅返回/ usr / lib 答案 0 :(得分:0)
CMake python模块:FindPythonLibs和FindPythonInterp。
如果这些不适合您,只需在调用cmake -DPYTHON_EXECUTABLE:FILEPATH
,-DPYTHON_LIBRARY:FILEPATH
和-DPYTHON_INCLUDE_DIR:FILEPAT
时设置下一个变量,有关详细信息,请查看here。
示例:
cmake .. -G "Sublime Text 2 - Ninja"
-DCMAKE_BUILD_TYPE=Release
-DPYTHON_EXECUTABLE:FILEPATH=d:\virtualenvs\python362_32
-DPYTHON_LIBRARY:FILEPATH=d:\virtualenvs\python362_32\libs\python36.lib
-DPYTHON_INCLUDE_DIR:FILEPAT=d:\virtualenvs\python362_32\include