我正在尝试在C ++应用程序中嵌入python脚本。我尝试执行此操作,而无需使用argv参数,因此,我尝试遵循本教程:https://www.codeproject.com/Articles/820116/%2FArticles%2F820116%2FEmbedding-Python-program-in-a-C-Cplusplus-code
我的第一步是运行本教程(1.1高度嵌入):https://docs.python.org/3/extending/embedding.html,现在可以使用。
在转到第二篇教程时,我的代码已编译,但脚本未加载,因为控制台中未显示任何内容
main.cpp:
#include <iostream>
#include <string>
#include <Python.h>
using namespace std;
int main() {
cout << "Hello, World!" << endl;
char filename[] = "test_script.py";
FILE* fp;
Py_Initialize();
fp = _Py_fopen(filename, "r");
PyRun_SimpleFile(fp, filename);
Py_Finalize();
return 0;
}
test_script.py:
print("print test from python")
def multiply(a,b):
print("Will compute", a, "times", b)
c = 0
for i in range(0, a):
c = c + b
return c
CmakeList.txt
cmake_minimum_required(VERSION 3.13)
project(TestCharacter)
set(CMAKE_CXX_STANDARD 14)
find_package(PythonLibs REQUIRED)
add_executable(TestCharacter main.cpp)
target_include_directories(TestCharacter PRIVATE ${PYTHON_INCLUDE_DIRS})
target_link_libraries(TestCharacter PRIVATE ${PYTHON_LIBRARIES})
由于我没有任何建筑错误,所以我不知道在哪里寻找。我试图在C ++代码中修改脚本的名称,以强制执行错误(我首先认为这可能是路径或名称错误),但没有任何构建错误
答案 0 :(得分:0)
该问题是由于Boion指出的CLion创建的建筑物目录访问错误所致。通过将我的脚本移动到以下文件夹:“ cmake-build-debug”解决了该问题。