C#呼叫Python
實現效果
通過C#
呼叫Python
寫好的方法
方法一、通過安裝 IronPython
實現
Q
:找不到py
檔案A
:檢查最後執行檔案路徑,可能需要將檔案屬性中“複製到輸出目錄”設定為“始終複製”
Q
:py
檔案方法執行異常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#/.net程式呼叫pythonC#Python
- C# 呼叫Python程式碼C#Python
- C#如何用最簡單方法呼叫Python?C#Python
- C#呼叫IronPython動態執行Python程式碼C#Python
- C#呼叫pydC#
- c# 反射呼叫方法C#反射
- C# 生成DLL 並 呼叫C#
- C#中Emgucv呼叫HalconC#
- CefSharp ——js呼叫c#方法JSC#
- xLua中C#呼叫LuaC#
- xLua中Lua呼叫C#C#
- c# 呼叫微吼直播APIC#API
- C#呼叫js庫的方法C#JS
- C#呼叫 C++的DLLC#C++
- matlab呼叫pythonMatlabPython
- python 呼叫 webdriverPythonWeb
- js 使用 DotNetObjectReference 呼叫 c# 函式JSObjectC#函式
- C++呼叫 c#生成的dllC++C#
- C# 反射呼叫擴充類方法C#反射
- C# 生成隨機數,呼叫Random方法C#隨機random
- C# 實現 gRPC 服務和呼叫C#RPC
- toLua中Lua呼叫C#中的類C#
- C#程式呼叫FFmpeg操作音視訊C#
- C# 免註冊呼叫大漠外掛C#
- C#呼叫C++動態連結庫C#C++
- C# NET framework 4.5呼叫系統Toast通知C#FrameworkAST
- C++呼叫C#的動態庫dllC++C#
- Java呼叫R與PythonJavaPython
- R呼叫python模組Python
- python ChainMap的呼叫效率PythonAI
- C#方法呼叫追溯:選擇正確的方式,輕鬆找到呼叫者C#
- 關於C#委託三種呼叫的分享C#
- 使用C++/CLI呼叫C#封裝類庫C++C#封裝
- c#呼叫C++DLL EntryPointNotFoundException 找不到入口點C#C++Exception
- 【抬槓C#】如何實現介面的base呼叫C#
- 深入xLua實現原理之Lua如何呼叫C#C#
- 深入xLua實現原理之C#如何呼叫LuaC#