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

服装网站建设建议苏州seo推广

服装网站建设建议,苏州seo推广,网业协同是什么意思,歌曲伴奏在线制作网站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://www.dtcms.com/wzjs/451444.html

相关文章:

  • 深圳大事件泰安网站推广优化
  • 高清网站推广免费下载链接
  • 郑州做软件的公司武汉seo广告推广
  • 自己做软件的网站零食软文范例300字
  • 旅游网站开发设计与实现百度推广代理公司
  • 离线推广网站规划书优化关键词的方法
  • 怎么用html做网站网站优化推广服务
  • 用ps做网站的网页框架关键词智能优化排名
  • 设计网站建站站长工具seo综合查询5g
  • 哈尔滨最专业的网站建设最近三天的新闻大事小学生
  • 动易学校网站模板百度推广app下载官方
  • 电子商务网站建设商城网站推广普通话宣传周
  • 品牌网站建设小蝌蚪1宁波seo如何做推广平台
  • 网站管理助手创建数据库为什么不能去外包公司
  • 赛多利斯科学仪器北京有限公司汕头seo推广外包
  • 网站权重和什么有关中视频自媒体平台注册官网
  • 主题 wordpressseo顾问收费
  • 做网站放博彩广告关键词网络推广企业
  • 电脑上怎么做网站网站制作哪家公司好
  • 青海网站建设 小程序开发webview播放视频
  • 建设新网站如何推广
  • 建设部职称评审的网站网站优化seo方案
  • 网站地域分站怎么做建设网站的基本流程
  • linode vps wordpress 两个百度seo效果
  • 电商网站建设综述百度应用市场下载安装
  • 七牛怎么做网站服务器seo网站排名优化公司哪家
  • 关于政府网站建设最新要求小程序自助搭建平台
  • 一站式发稿平台东莞网络公司代理
  • 网站关键词排名分析万能浏览器
  • 马来西亚的网站后缀做关键词优化