前提条件
- 已经安装好python环境(我使用的是Anaconda3,Python版本是3.7)。
- 安装好Clion(我使用的是CLion 2019.2.5)。
- 可能需要配置环境变量(我之前已经将python相关的环境变量配置好了,不确定是否有影响)。
步骤
- 新建好工程,打开CMakeLists.txt。
添加下面两行代码。
include_directories(python目录\\include)
link_libraries(python目录/libs/python37.lib)
我的python目录是D:\Anaconda3\ ,下面是配置好的CMakeLists.txt。然后,可能需要点击右上方的Reload changes重新加载这个文件。
2. 打开要调用Python代码的文件(比如main.cpp),导入头文件<Python.h>,如下图所示。如果看到了如下图所示的提示,那么就说明上面的配置生效了。
3. 然后我们便可以使用头文件中的接口来调用python代码。需要注意的是,使用python之前,要调用
Py_Initialize()
函数进行初始化;在使用完python后要调用函数Py_Finalize()
。简单的例子如下图所示。
4. 但是,完成了上述的步骤,我仍没能成功运行代码。出现错误:
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
我解决问题的办法是在Py_Initialize()
之前加上Py_SetPythonHome(L"python目录")
。如下图所示,运行成功!