簡體   English   中英

在c ++中嵌入python:python腳本無法識別

[英]embedding python in c++: python script not recognized

我試圖將python腳本嵌入到c ++項目中。 以下是我到目前為止所嘗試的內容。

#include<iostream>
#include <Python.h>

int
main()
{
    Py_Initialize();
    PyObject* sysPath = PySys_GetObject("path"); 
    PyObject* modPath = PyBytes_FromString("C:\\Users\\naal\\Documents\\Visual Studio 2017\\Projects\\Project1\pyscripts");
    int result = PyList_Insert(sysPath,0, modPath);
    PyObject *pModule = PyImport_ImportModule("myscript2");
    printf("%p\n", pModule);
    return 0;
}

下面是python腳本“myscript2.py”

def find_me():
    print("hey you found me")

問題是,主模塊無法找到python腳本,即對象pyModule始終為NULL,無論我如何更改python腳本路徑。

我究竟做錯了什么 ?

我最后以另一種方式實現了這一點。

#include<iostream>
#include <Python.h>

int main() {    
       std::string location = "C:\\Users\\myscript.py";     
       const char* file_location = location.c_str();    FILE* file_pointer;          
       Py_Initialize();
       file_pointer = _Py_fopen(file_location, "r");
       PyRun_SimpleFile(file_pointer, file_location);

       Py_Finalize();
       return 1;
       }

以上似乎都有效。 我仍然不知道為什么在問題中原始提到的SYSPATH想法不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM