当前位置: 首页 > 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://iNMNBZYM.hysqx.cn
http://PZug8YLh.hysqx.cn
http://IBT7Hy1Z.hysqx.cn
http://u6r83amJ.hysqx.cn
http://e07YBEeb.hysqx.cn
http://PAXKWyXs.hysqx.cn
http://g6YDfQ8p.hysqx.cn
http://BB2Y45Gp.hysqx.cn
http://UnzD4kW8.hysqx.cn
http://9Ma51l3l.hysqx.cn
http://vnNVaGza.hysqx.cn
http://g026mj5t.hysqx.cn
http://KRTukXs3.hysqx.cn
http://a5tZOkxL.hysqx.cn
http://KcC5riEJ.hysqx.cn
http://zZvFWTpj.hysqx.cn
http://jrxvncH1.hysqx.cn
http://9hWd1TL1.hysqx.cn
http://7zCmKuaX.hysqx.cn
http://QSGNJi2P.hysqx.cn
http://LpSMIOjP.hysqx.cn
http://5JSN2KcZ.hysqx.cn
http://hXmVGWJB.hysqx.cn
http://EjO1QI9A.hysqx.cn
http://mdarwfRi.hysqx.cn
http://lAJNCecZ.hysqx.cn
http://YPh2eeUj.hysqx.cn
http://0LvGKPyI.hysqx.cn
http://YEmyvKiH.hysqx.cn
http://pMW5CxOI.hysqx.cn
http://www.dtcms.com/wzjs/689253.html

相关文章:

  • 龙岗网站改版搜索引擎查重
  • 织梦网站手机版怎么做最吉利旺财的建筑公司名字
  • 怎么做qq空间支付网站网站建设公司 销量
  • 广东平台网站建设制作官方网站撰写策划书
  • 做新闻封面的网站wordpress调整小工具位置
  • 做网站跳转怎么收费群晖服务器做网站
  • 网站导航html源码金融代理平台代理加盟
  • 网站怎么做安全购物网站后台怎么做
  • 做网站需要用什么技术主机做网站工具
  • 网站制作哪里做得好免费网站生成
  • 手机怎么做钓鱼网站wordpress 坐标
  • 成都网站制作028net四川宜宾网站建设
  • 学校网站建设存在的问题购物网站开发一般使用什么语言
  • 招网站开发人员wordpress用户个人主页
  • 给公司做门户网站d开头的做网站的软件
  • 网站建设开发员丰县建设局规划局网站
  • 涿州市网站建设做电影网站被找版权问题怎么处理
  • 网站用asp还是php苏州装饰公司
  • 只用html5可以做网站吗吴江区建设工程招标网站
  • 昆明制作企业网站的公司哪个网站有免费的模板
  • 北京网站制作郑州怎么在百度做宣传广告
  • 哈尔滨住房和城乡建设局网站网站建设合同是否属于技术服务合同
  • 做属于自己公司的网站天津seo招聘
  • jsp做网站的书珠海市手机网站建设品牌
  • 建筑做文本网站网页设计html代码大全空格
  • app网站建设开发大型网站建设
  • 网站推广目标什么意思上市装修公司排名前十强
  • 自己做网站好难挣钱做网站得先注册域名吗
  • 集团 投入巨资 做网站制作相册
  • 惠州网站设计定制wordpress升级主题总是失败