美文网首页
C#调用Python

C#调用Python

作者: 过桥 | 来源:发表于2018-12-03 15:51 被阅读12次

实现效果

通过C#调用Python写好的方法

方法一、通过安装 IronPython 实现

Q:找不到py文件
A:检查最后执行文件路径,可能需要将文件属性中“复制到输出目录”设置为“始终复制”

Qpy文件方法执行异常
A:检查py文件可否单独执行,如果可以执行,检查执行环境是否为3.x,可能需要py代码降级;如果不可执行,检查是否引用第三方包,第三方是否非全局安装

Tip:目前 IronPython 支持Python模拟运行环境为2.x

方法二、将py文件通过flask发布成接口

Q:跨域
A:设置跨域访问装饰器

Q:使用sublime,启动python服务,修改代码后再次启动python服务,调用还是初始未修改的服务
A:简单粗暴方式,直接切换端口;进阶方式,检查任务管理器中python对应进程,关闭正在运行的进程后再启动

方法二、样例代码

# -*- coding:utf-8 -*-
from functools import wraps
from flask import Flask, url_for, request, make_response
import sketch_n_draw


app = Flask(__name__)

#跨域
def allow_cross_domain(fun):
    @wraps(fun)
    def wrapper_fun(*args, **kwargs):
        rst = make_response(fun(*args, **kwargs))
        rst.headers['Access-Control-Allow-Origin'] = '*'
        rst.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
        allow_headers = "Referer,Accept,Origin,User-Agent"
        rst.headers['Access-Control-Allow-Headers'] = allow_headers
        return rst
    return wrapper_fun

@app.route('/')
@allow_cross_domain
def api_root():
    return 'Welcome sketch_n_draw Root!'

@app.route('/api',methods = ['POST'])
@allow_cross_domain
def api():
    if request.method == "POST":
        folderName = request.form.get('folderName')
        fileName = request.form.get('fileName')
        return sketch_n_draw.start(folderName,fileName)


if __name__ == '__main__':
    app.run(host='172.16.9.26',port=8080)

相关文章

  • C#与python结合编程

    C#与python结合编程 形式:用C#写界面和事件触发,调用python脚本进行逻辑和数据处理。 好处:编写好界...

  • 对Lua ,C,C#互相调用的理解

    几种情况讨论 C调用Lua C调用C# C#调用C C#调用Lua Lua调用C Lua调用C# Lua调用C 本...

  • C#调用Python

    实现效果 通过C#调用Python写好的方法 方法一、通过安装 IronPython 实现 Q:找不到py文件A:...

  • .net与.net core学习目录

    .net C#调用python 模拟请求(模拟header/gzip解压/泛型) C#控制台关闭之前做一些操作 C...

  • c#调用python脚本

    https://www.cnblogs.com/shiyingzheng/p/6054835.html # C#调...

  • Python函数

    一函数定义 1内置函数 Python内置了很多有用的函数,我们可以直接调用。不像C#中调用函数,需要先实例化类,再...

  • module 'clr' has no attribute 'A

    开发powerbi第三方插件需要使用pythonnet来使python调用C#的dll文件,import clr和...

  • Emgu C#中调用Opencv C++

    1、Emgu C#中调用Opencv C++ Emgu 是C#的OpenCV,在C#中调用Emgu起到方面简单的图...

  • Python与C 哪个更好学?

    Python与c#的技术差异很大,但都适合web开发,那Python与C#哪个更好学呢?以下是Python与C#详...

  • SQL通用分页查询存储过程

    存储过程 C#调用

网友评论

      本文标题:C#调用Python

      本文链接:https://www.haomeiwen.com/subject/ismycqtx.html