用Python嵌入C++程序

2024-04-20 01:09:19 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我有一个QT C++项目,其中,对于一些功能,我添加了Python。C++函数调用Python脚本并返回价值观。比如下面的例子。你知道吗

PyObject *pName,*pModule,*pFunc;
PyObject *pArgs,*pValue;
const char *module="getBeamData";
pName=PyUnicode_FromString(module);
pModule=PyImport_Import(pName);
if(pModule!=NULL){
    pFunc=PyObject_GetAttrString(pModule,"getBeamDose");
    if(pFunc&&PyCallable_Check(pFunc)){
        pArgs=PyTuple_New(2);        
  PyTuple_SetItem(pArgs,0,PyBytes_FromString(path.toStdString().c_str()));
        PyTuple_SetItem(pArgs,1,PyLong_FromLong(fraction));      
        pValue=PyObject_CallObject(pFunc,pArgs);

它调用脚本获取BeamData.py. 功能正常。我是否必须为所有客户和发货脚本安装python和库(比如numpy)?或者有没有其他不发剧本的方式。你知道吗


Tags: 项目功能脚本ifqtmodulepyobjectfromstring
2条回答

如果不静态编译Python脚本,则需要分发:

  • 你知道吗要求.txt(适用于脚本所需的所有库/模块)。你知道吗
  • 关于脚本所需的Python正确版本的详细信息(2.7/3等)。你知道吗

或者,您可以考虑使用py2exe创建一个可执行文件并分发它,尽管您需要修改程序与Python脚本交互的方式。你知道吗

关于发布Pythoncan be found here的更多细节。你知道吗

如果我是你,我会用某种安装程序。你知道吗

现在在该安装程序中,您当然可以嵌入脚本的^{}版本,此外,还将使用^{}安装该脚本。你知道吗

在setuptools脚本中,您可以提到依赖关系,但这意味着您的客户机应该在其计算机上安装Python,或者您应该随软件附带自己的Python版本。你知道吗

这种功能也可以使用^{}实现

相关问题 更多 >