不使用arg嵌入python,脚本无法加载

时间:2019-01-09 16:21:13

标签: c++ python-3.x

我正在尝试在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 ++代码中修改脚本的名称,以强制执行错误(我首先认为这可能是路径或名称错误),但没有任何构建错误

1 个答案:

答案 0 :(得分:0)

该问题是由于Boion指出的CLion创建的建筑物目录访问错误所致。通过将我的脚本移动到以下文件夹:“ cmake-build-debug”解决了该问题。