我正在使用python处理我的opengl / c ++应用程序中需要的一些.obj
文件。我的脚本称为boundingBox.py
,其中的函数称为getBoundingBox(filename)
。这是我尝试使用的代码:
Py_Initialize();
const char* module = "./scripts/boundingBox.py";
const char* function = "getBoundingBox";
PyObject* moduleStr = PyUnicode_FromString(module);
PyObject* myModule = PyImport_Import(moduleStr);
if (myModule != NULL) {
PyObject* myFunction = PyObject_GetAttrString(myModule, function);
if (myFunction && PyCallable_Check(myFunction)) {
//executing the function to obtain 2 bounding boxes
const char* filename1 = "./models/tree.obj";
const char* filename2 = "./models/farmhouse.obj";
PyObject* file1 = PyUnicode_FromString(filename1);
PyObject* arg1 = PyTuple_Pack(1, file1);
PyObject* myResult1 = PyObject_CallObject(myFunction, arg1);
if (PyTuple_Check(myResult1)) {
cout << "successfully got bounding box 1" << endl;
}
PyObject* file2 = PyUnicode_FromString(filename2);
PyObject* arg2 = PyTuple_Pack(1, file2);
PyObject* myResult2 = PyObject_CallObject(myFunction, arg2);
if (PyTuple_Check(myResult2)) {
cout << "successfully got bounding box 2" << endl;
}
}
else {
PyErr_Print();
}
}
else {
PyErr_Print();
}
我面临一些问题,文档以及其他有关SO的问题似乎无济于事...
"boundingBox.py"
的原因。.obj
文件。当前项目的结构如下(每个名称均为目录,除非具有文件格式):
>lab03:
>>build
>>external
>>common
>>lab03:
>>>models
>>>> tree.obj
>>>> farmhouse.obj
>>>scripts
>>>> boundingBox.py
>>>lab03.exe
当我教c并想打开一个文件时,它必须位于同一目录中,因此在这种假设下,我使用了相对于可执行文件路径的路径。显然我错了,但是我不知道如何解决它。任何帮助将不胜感激。