当前位置: 首页 > wzjs >正文

大连网站建设制作公司手机动画制作软件

大连网站建设制作公司,手机动画制作软件,深圳优化网站方法,湛江网签Python安装 地址: python官网 可以根据需要下载对应的版本。 调用python python测试脚本 # my_script.py import sys import jsondef calculate(a, b):return a * b 10 # 示例计算逻辑if __name__ "__main__":# 从命令行参数读取 JSON 字符串try…

Python安装

地址: python官网
官网

可以根据需要下载对应的版本。

调用python

python测试脚本

# my_script.py
import sys
import jsondef calculate(a, b):return a * b + 10  # 示例计算逻辑if __name__ == "__main__":# 从命令行参数读取 JSON 字符串try:args = json.loads(sys.argv[1])a = args['a']b = args['b']result = calculate(a, b)# 输出 JSON 格式结果print(json.dumps({"result": result}))except Exception as e:print(json.dumps({"error": str(e)}), file=sys.stderr)sys.exit(1)

调用方式:

脚本直接调用

通过写python成脚本,运行python解释器并运行对应的脚本,执行对应的任务,如果是跟自己程序不需要进行通讯的,这种方式是最好的,不涉及参数的传输。
通过json结构来传入程序运行数据。并通过接收终端打印信息解析回数据。

#include <QProcess>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>void callPythonScript() {QProcess pythonProcess;// 定义参数(例如 a=5, b=3)QJsonObject params;params["a"] = 5;params["b"] = 3;QString jsonArgs = QJsonDocument(params).toJson(QJsonDocument::Compact);// 启动 Python 进程pythonProcess.start("python", QStringList() << "my_script.py" << jsonArgs);if (!pythonProcess.waitForFinished()) {qDebug() << "Python 进程执行超时或出错";return;}// 读取标准输出QByteArray output = pythonProcess.readAllStandardOutput();QJsonDocument resultDoc = QJsonDocument::fromJson(output);if (resultDoc.isObject()) {QJsonObject resultObj = resultDoc.object();if (resultObj.contains("result")) {int result = resultObj["result"].toInt();qDebug() << "计算结果:" << result;  // 输出:计算结果:25 (5*3+10)} else if (resultObj.contains("error")) {qDebug() << "Python 错误:" << resultObj["error"].toString();}} else {qDebug() << "无法解析 Python 输出:" << output;}
}

通过嵌入Python调用

python提供了C语言的API,可以通过C语言来调用Python。

#include <Python.h>
#include <QCoreApplication>
#include <QDebug>void callEmbeddedPython() {Py_Initialize();// 1. 添加脚本目录到 sys.pathQString scriptDir = "D:/test";PyRun_SimpleString("import sys");PyRun_SimpleString(qPrintable(QString("sys.path.append('%1')").arg(scriptDir)));// 2. 导入模块(模块名 = 文件名不含 .py)PyObject *pModule = PyImport_ImportModule("my_script");if (!pModule) {PyErr_Print();qDebug() << "模块导入失败,请检查:"<< "\n- 文件路径: " << scriptDir + "/my_script.py"<< "\n- Python 环境: 当前解释器版本为 " << Py_GetVersion();Py_Finalize();return;}// 3. 调用函数PyObject *pFunc = PyObject_GetAttrString(pModule, "calculate");if (pFunc && PyCallable_Check(pFunc)) {PyObject *pArgs = PyTuple_New(2);PyTuple_SetItem(pArgs, 0, PyLong_FromLong(5));PyTuple_SetItem(pArgs, 1, PyLong_FromLong(3));PyObject *pResult = PyObject_CallObject(pFunc, pArgs);if (pResult) {qDebug() << "[嵌入式] 结果:" << PyLong_AsLong(pResult);Py_DECREF(pResult);}Py_DECREF(pArgs);Py_DECREF(pFunc);} else {PyErr_Print();qDebug() << "函数 calculate 未找到或不可调用";}Py_DECREF(pModule);Py_Finalize();
}int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);callEmbeddedPython();return a.exec();
}

异常处理

1.如果qt中引入#include <Python.h>会出现报错

报错
因为用了slots变量,这个在qt中是关键字,需要把这个变量换一个名字就可以了。
在这里插入图片描述

2. 通过嵌入Python调用时候,直接运行脚本是有问题的

需要把这个脚本引入到对应的模块中,才能调用,否则就会报错。


文章转载自:

http://ZESHKoMw.gmyhq.cn
http://NvSPV6BN.gmyhq.cn
http://qkd1myoo.gmyhq.cn
http://SCGxRZoc.gmyhq.cn
http://TiZDaQLZ.gmyhq.cn
http://lBrWHVrQ.gmyhq.cn
http://BN0jSMDB.gmyhq.cn
http://9HrHdAd8.gmyhq.cn
http://JU55Af0Y.gmyhq.cn
http://qnhZoXXA.gmyhq.cn
http://06c3wZLe.gmyhq.cn
http://H5tyGbGw.gmyhq.cn
http://GTislIaQ.gmyhq.cn
http://i4CJ5vGZ.gmyhq.cn
http://90qKelM8.gmyhq.cn
http://Xej3nKYV.gmyhq.cn
http://XhUX3WM6.gmyhq.cn
http://Ikdtdw7z.gmyhq.cn
http://a7pvbKcB.gmyhq.cn
http://CwwkFS5k.gmyhq.cn
http://PtCbYUn7.gmyhq.cn
http://YwS7eN0H.gmyhq.cn
http://ZuUw3evs.gmyhq.cn
http://LZJoiP6C.gmyhq.cn
http://2AbzChm4.gmyhq.cn
http://F8uzv62K.gmyhq.cn
http://GQu0mJKn.gmyhq.cn
http://nbOK63b6.gmyhq.cn
http://AXjdcaV5.gmyhq.cn
http://8MVmOZeM.gmyhq.cn
http://www.dtcms.com/wzjs/724766.html

相关文章:

  • 如何给自己建设的网站设置登陆用户名和密码网络工程师证书考试时间
  • 网站建设大概需要多少钱安徽做网站的公司
  • asp网站抓取建设网站的作用及意义
  • 杭州 网站建设夏天做那些网站能致富
  • 免费创一个网站搜索技巧
  • 推广网站的网址和网鱼相匹配建设网站的企业费用
  • 公众号里链接的网站怎么做的查域名地址
  • 旅行社网站建设设计公司哪家好网站开发专家:php+mysql网站开发技术与典型案例导航
  • 大名做网站拉了专线可以直接做网站吗
  • 网站建设插件龙岗区网站建设哪个公司好
  • 我想自己建个网站买货 怎么做google网页版登录入口
  • 银川网站开发推广企业做网站seo优化总结
  • 免费做网站哪家好松江外贸网站建设
  • 建设网站 课程设计建设网站域名备案
  • 打开云南省住房和城乡建设厅网站群辉怎么做网站
  • 指定网站长期建设 运营计划vps建立多个网站
  • 资源下载站wordpress主题杭州中小企业网站建设
  • 企业网站托管外包方案WordPress获取文章总数
  • 网站建设任务书广东网站建设seo优化
  • 百度网站网址是多少抖音代运营合同模板免费
  • 重庆网站优化服务opencart wordpress
  • 商会联盟网站建设方案公司的企业邮箱怎么查询
  • 建设银行杭州网站首页朋友圈推广一天30元
  • 如何学好jsp网站开发代理加速器
  • 学校网站维护营销型网站的目标
  • 做零食用哪个网站好网络推广都有哪些方式
  • 那个网站科四做课时环保网站设计是什么
  • 求个免费网站网站开发项目立项报告范文
  • 盐城企业建设网站四川旅游攻略自由行攻略
  • 一流的苏州网站建设橙光游戏制作器手机版