CN108549559A - 一种调用Python算法的方法和装置 - Google Patents

一种调用Python算法的方法和装置 Download PDF

Info

Publication number
CN108549559A
CN108549559A CN201810408797.7A CN201810408797A CN108549559A CN 108549559 A CN108549559 A CN 108549559A CN 201810408797 A CN201810408797 A CN 201810408797A CN 108549559 A CN108549559 A CN 108549559A
Authority
CN
China
Prior art keywords
python
web api
algorithms
calling
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810408797.7A
Other languages
English (en)
Inventor
张崇善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Genersoft Information Technology Co Ltd
Original Assignee
Shandong Inspur Genersoft Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Genersoft Information Technology Co Ltd filed Critical Shandong Inspur Genersoft Information Technology Co Ltd
Priority to CN201810408797.7A priority Critical patent/CN108549559A/zh
Publication of CN108549559A publication Critical patent/CN108549559A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供了一种调用Python算法的方法和装置,其中,该方法包括:预先设置至少一个Python算法,还包括:当接收到触发时,将每一个所述Python算法发布为对应的Python Web API;接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据所述HTTP请求调用所述目标Python Web API;将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。本发明提供的方案能够实现.NET平台中的应用调用Python算法。

Description

一种调用Python算法的方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及一种调用Python算法的方法和装置。
背景技术
Python是一种高级编程语言,相比其他语言,其在算法实现等具有较大优势。例如,完成同一个任务,C语言需要写1000行代码,C#需要写100行代码,而Python只需要写20行代码。并且,Python拥有众多的开源函数库。
现有技术中,.NET平台中的应用无法调用Python算法。
发明内容
本发明实施例提供了一种调用Python算法的方法和装置,能够实现.NET平台中的应用调用Python算法。
第一方面,本发明实施例提供了一种调用Python算法的方法,预先设置至少一个Python算法,还包括:
当接收到触发时,将每一个所述Python算法发布为对应的Python Web API;
接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;
根据所述HTTP请求调用所述目标Python Web API;
将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。
优选地,
进一步包括:预先设置启动程序;
所述当接收到触发时,将每一个所述Python算法发布为对应的Python Web API,包括:
当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的Python Web API。
优选地,
所述HTTP请求中包括:调用方式、URL;
所述根据所述HTTP请求调用所述目标Python Web API,包括:
根据所述HTTP请求中的URL确定所述目标Python Web API;
根据所述调用方式调用所述目标Python Web API。
第二方面,本发明实施例提供了一种调用Python算法的装置,包括:
设置单元,用于设置至少一个Python算法;
发布单元,用于当接收到触发时,将所述设置单元设置的每一个所述Python算法发布为对应的Python Web API;
调用单元,用于接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据所述HTTP请求调用所述目标Python Web API;
通信单元,用于将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。
优选地,
所述设置单元,进一步用于设置启动程序;
所述发布单元,用于当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的Python Web API。
优选地,
所述HTTP请求中包括:调用方式、URL;
所述调用单元,用于根据所述HTTP请求中的URL确定所述目标Python Web API;根据所述调用方式调用所述目标Python Web API。
第三方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例中所述的方法。
第四方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例中所述的方法。
本发明实施例提供了一种调用Python算法的方法和装置,其中,在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用Python Web API,并接收Python Web API返回的调用结果。本发明提供的方案能够实现.NET平台中的应用调用Python算法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种调用Python算法的方法的流程图;
图2是本发明另一个实施例提供的一种调用Python算法的方法的流程图;
图3是本发明一个实施例提供的一种调用Python算法的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种调用Python算法的方法,包括以下步骤:
步骤101:设置至少一个Python算法;
步骤102:当接收到触发时,将每一个Python算法发布为对应的Python Web API;
步骤103:接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;
步骤104:根据HTTP请求调用目标Python Web API;
步骤105:将目标Python Web API反馈的调用结果发送给.NET平台中的应用。
在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用Python Web API,并将目标Python Web API反馈的调用结果发送给.NET平台中的应用。本发明提供的方案能够实现.NET平台中的应用调用Python算法。
如下所示是Python算法代码的一种实现形式:
在本发明的一个实施例中,该方法还包括:预先设置启动程序;
当接收到触发时,将每一个Python算法发布为对应的Python Web API,包括:
当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。
如下所示的是启动程序代码的一种实现形式:
在本发明的一个实施例中,HTTP请求中包括:调用方式、URL;
根据HTTP请求调用目标Python Web API,包括:
根据HTTP请求中的URL确定目标Python Web API;
根据调用方式调用目标Python Web API。
启用命令窗口,执行启动程序,Python Web API应用的监听端口默认为5000。
创建C#的控制台应用程序,编写测试代码并获得模拟算法返回的结果,测试代码如下所示:
如图2所示,本发明实施例以.NET平台中的应用调用Python算法为例,对调用Python算法的方法进行详细地说明,该方法包括:
步骤201:设置启动程序、至少一个Python算法。
步骤202:当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。
步骤203:接收.NET平台中的应用针对目标Python Web API发送的HTTP请求。
HTTP请求中包括:调用方式、URL;
调用方式,包括:GET和POST中任意一种。
步骤204:根据HTTP请求中的URL确定目标Python Web API。
步骤205:根据调用方式调用目标Python Web API。
步骤206:将目标Python Web API反馈的调用结果发送给.NET平台中的应用。
如图3所示,本发明实施例提供了一种调用Python算法的装置,包括:
设置单元301,用于设置至少一个Python算法;
发布单元302,用于当接收到触发时,将设置单元301设置的每一个Python算法发布为对应的Python Web API;
调用单元303,用于接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据HTTP请求调用目标Python Web API;
通信单元304,用于将目标Python Web API反馈的调用结果发送给.NET平台中的应用。
在本发明的一个实施例中,设置单元301,进一步用于设置启动程序;
发布单元302,用于当接收到触发时,利用启动程序将每一个Python算法发布为对应的Python Web API。
在本发明的一个实施例中,HTTP请求中包括:调用方式、URL;
调用单元303,用于根据HTTP请求中的URL确定目标Python Web API;根据调用方式调用目标Python Web API。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例的方法。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
综上,本发明各个实施例至少具有如下效果:
1、在本发明实施例中,在该方法中,.NET与Python的交互基于HTTP协议,Python算法能够发布为对应的Python Web API,.NET平台中的应用通过发送HTTP请求调用PythonWeb API,并将目标Python Web API反馈的调用结果发送给.NET平台中的应用。本发明提供的方案能够实现.NET平台中的应用调用Python算法。
2、在本发明实施例中,将Python算法发布为Python Web API,基于HTTP协议进行调用,调用过程简单,不受Python语法以及调用方式的影响。
3、在本发明实施例中,该方法可扩展性强,在需要调用新算法时,只需改变启动程序,在启动程序中增加对新算法的调用方法,并绑定一个访问URL即可。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种调用Python算法的方法,其特征在于,预先设置至少一个Python算法,还包括:
当接收到触发时,将每一个所述Python算法发布为对应的Python Web API;
接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;
根据所述HTTP请求调用所述目标Python Web API;
将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。
2.根据权利要求1所述的调用Python算法的方法,其特征在于,进一步包括:预先设置启动程序;
所述当接收到触发时,将每一个所述Python算法发布为对应的Python Web API,包括:
当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的PythonWeb API。
3.根据权利要求1或2所述的调用Python算法的方法,其特征在于,
所述HTTP请求中包括:调用方式、URL;
所述根据所述HTTP请求调用所述目标Python Web API,包括:
根据所述HTTP请求中的URL确定所述目标Python Web API;
根据所述调用方式调用所述目标Python Web API。
4.一种调用Python算法的装置,其特征在于,包括:
设置单元,用于设置至少一个Python算法;
发布单元,用于当接收到触发时,将所述设置单元设置的每一个所述Python算法发布为对应的Python Web API;
调用单元,用于接收.NET平台中的应用针对目标Python Web API发送的HTTP请求;根据所述HTTP请求调用所述目标Python Web API;
通信单元,用于将所述目标Python Web API反馈的调用结果发送给所述.NET平台中的应用。
5.根据权利要求4所述的调用Python算法的装置,其特征在于,
所述设置单元,进一步用于设置启动程序;
所述发布单元,用于当接收到触发时,利用所述启动程序将每一个所述Python算法发布为对应的Python Web API。
6.根据权利要求4或5所述的调用Python算法的装置,其特征在于,
所述HTTP请求中包括:调用方式、URL;
所述调用单元,用于根据所述HTTP请求中的URL确定所述目标Python Web API;根据所述调用方式调用所述目标Python Web API。
7.一种可读介质,其特征在于,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行权利要求1-3中任一所述的方法。
8.一种存储控制器,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行权利要求1-3中任一所述的方法。
CN201810408797.7A 2018-05-02 2018-05-02 一种调用Python算法的方法和装置 Pending CN108549559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810408797.7A CN108549559A (zh) 2018-05-02 2018-05-02 一种调用Python算法的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810408797.7A CN108549559A (zh) 2018-05-02 2018-05-02 一种调用Python算法的方法和装置

Publications (1)

Publication Number Publication Date
CN108549559A true CN108549559A (zh) 2018-09-18

Family

ID=63513174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810408797.7A Pending CN108549559A (zh) 2018-05-02 2018-05-02 一种调用Python算法的方法和装置

Country Status (1)

Country Link
CN (1) CN108549559A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101669114A (zh) * 2007-04-27 2010-03-10 微软公司 动态加载脚本
CN103488527A (zh) * 2013-09-03 2014-01-01 新浪网技术(中国)有限公司 一种php api调用方法、相关设备及系统
US20140317642A1 (en) * 2011-10-24 2014-10-23 The Boeing Company Sharing of first class objects across multiple interpreted programming languages
CN105260169A (zh) * 2014-07-16 2016-01-20 中兴通讯股份有限公司 一种跨平台移植python程序的方法及装置
CN106843875A (zh) * 2017-01-19 2017-06-13 杭州数梦工场科技有限公司 跨平台移植Python程序的方法和装置
CN107704256A (zh) * 2017-10-11 2018-02-16 成都知道创宇信息技术有限公司 一种Ubuntu上实现Python依赖系统库自动化安装的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101669114A (zh) * 2007-04-27 2010-03-10 微软公司 动态加载脚本
US20140317642A1 (en) * 2011-10-24 2014-10-23 The Boeing Company Sharing of first class objects across multiple interpreted programming languages
CN103488527A (zh) * 2013-09-03 2014-01-01 新浪网技术(中国)有限公司 一种php api调用方法、相关设备及系统
CN105260169A (zh) * 2014-07-16 2016-01-20 中兴通讯股份有限公司 一种跨平台移植python程序的方法及装置
CN106843875A (zh) * 2017-01-19 2017-06-13 杭州数梦工场科技有限公司 跨平台移植Python程序的方法和装置
CN107704256A (zh) * 2017-10-11 2018-02-16 成都知道创宇信息技术有限公司 一种Ubuntu上实现Python依赖系统库自动化安装的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MIKE WASSON、RICK ANDERSON: ""从.NET客户端调用Web API(C#)"", 《HTTPS://DOCS.MICROSOFT.COM/ZH-CN/ASPNET/WEB-API/OVERVIEW/ADVANCED/CALLING-A-WEB-API-FROM-A-NET-CLIENT》 *
PATRICK SMYTH: ""Creating Web APIs with Python and Flask"", 《HTTPS://PROGRAMMINGHISTORIAN.ORG/EN/LESSONS/CREATING-APIS-WITH-PYTHON-AND-FLASK》 *
张光辉 等: "《基于.NET平台的WEB开发》", 29 February 2016, 成都:西南交通大学出版社 *

Similar Documents

Publication Publication Date Title
JP5989001B2 (ja) ペルソナベースのアプリケーションエクスペリエンスの提供
US11144330B2 (en) Algorithm program loading method and related apparatus
US20150242304A1 (en) Collaborative computer aided test plan generation
US20170060350A1 (en) Managed screen sharing in an enterprise application
CN105024933B (zh) 请求包发送频率的控制方法及装置
JP6560265B2 (ja) ネットワーク支払を制御する方法及び装置
KR20100046198A (ko) 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
CN110908837B (zh) 应用程序异常处理方法、装置、电子设备及存储介质
CN106326099B (zh) 一种用于程序跟踪的方法、装置及电子设备
CN113672353B (zh) 一种基于容器的任务执行方法及装置
US9519505B1 (en) Enhanced configuration and property management system
CN109376163A (zh) 一种数据双向绑定的方法、装置、终端及存储介质
CN108647105A (zh) 系统切换过程中的幂等控制方法、装置及系统
US20220292056A1 (en) Method and apparatus for modifying file name, and storage medium
CN109195157A (zh) 应用管理方法、装置及终端
CN113506035A (zh) 一种审批流程的确定方法、装置和设备
CN106599623B (zh) 一种应用相似度计算方法及装置
EP2674899A2 (en) Systems and/or methods for dynamic selection of rules processing mode
CN111309432B (zh) 一种故障演练方法、装置及系统
CN106059990B (zh) 在可编程逻辑控制器系统中自动设置协议的方法
CN108549559A (zh) 一种调用Python算法的方法和装置
CN107861751A (zh) 配置文件的修改方法及装置
US20210174606A1 (en) Alarm offset optimization apparatus of autosar operating system
CN114138711A (zh) 文件迁移方法、装置、存储介质及电子设备
Kasten et al. Perimorph: Run-time composition and state management for adaptive systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180918