gpt4 book ai didi

python - 嵌入python模块错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:57:40 27 4
gpt4 key购买 nike

所以我有一个 c 到 python 包装器,它接受输入字符串并将它们传递给 python 函数。我得到的错误是 python API 无法识别我的 python 文件...

PyObject *pName, *pModule, *pFunc;
QString pyFile="Test.py";
Py_Initialize();
pName = PyUnicode_FromString(pyFile.toAscii().data());
pModule = PyImport_Import(pName);

错误是“ImportError:没有名为 Test.py 的模块”这是我的 Test.py 与我的项目位于同一目录中的时候

当我将 Test.py 放在目录树中的上一层时,出现了另一个错误错误是“不支持按文件名导入”

所以我猜绝对路径不起作用?但是在我的示例中的第一种情况下,我清楚地将我的 Test.py 放在与我的项目相同的目录中,为什么我会收到错误消息?python代码是:

import sys
import os

def printFileClass(fileName, className):
print ("The OMC CORBA File name is ", fileName,"\n")
print ("The selected Modelica Class is ", className)
return ("Done operations")


def main():
print ("Hello! Here is testing script's main \n")



if __name__=='__main__':
main()

最佳答案

PYTHONPATH 环境变量可用于解决您的问题。

在您的代码中,您可以在 Py_Initialize() 之前的某处执行此操作:

setenv("PYTHONPATH", ".", 0); // #include <stdlib.h> to get the prototype

第三个参数 0 表示覆盖 - 它为零,因此您也可以从 shell 传递 PYTHONPATH。如果您想始终使用您编码的路径,您可以将其设置为 1。

我不确定这不会让您遇到其他问题,但对于一个简单的测试来说它是有效的。

此外,不要在传递给 PyImport_Import 的模块名称中包含 .py 扩展名。

我在 Linux 系统上对此进行了测试。

关于python - 嵌入python模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494859/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com