C#中调用python
为了记录自己的学习成果,防止遗忘,同时为了帮助在C#学习过程中遇到同样问题的同志们,所以将原版代码奉上!!!
开发环境:vs2015
准备工作:
下载并安装Ironpython
创建控制台应用程序
添加文本文件,并命名为test.py
添加引用:引用IronPython.dll,Microsoft.Scripting.dll 两个dll文件
控制台程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//引用需要的命名空间
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
/*执行bin目录下test.py*/
/*ScriptEngine pyEngine = Python.CreateEngine();//创建Python解释器对象
dynamic py = pyEngine.ExecuteFile(@"test.py");//读取脚本文件
int[] array = new int[9] { 9, 3, 5, 7, 2, 1, 3, 6, 8 };
string reStr = py.main(array);//调用脚本文件中对应的函数
Console.WriteLine(reStr);
Console.ReadKey();*/
ScriptRuntime pyRunTime = Python.CreateRuntime();
dynamic obj = pyRunTime.UseFile("test.py");
Console.WriteLine(obj.welcome(10));
Console.ReadKey();
}
}
}
python程序:
import math
def welcome(value):
return math.pi + value
#print(welcome(100))
运行前注意:点击test.py 将复制到输出目录 设置为始终复制
运行:直接按F5
执行效果:
更多相关文章
- 0223-空间引用类的三种方式,写一个自动加载类;
- 命名空间类三种引用、类导入命名冲突解决、自动加载类、mysql操
- 命名空间类名三种引用-命名冲突解决-自动加载-数据库操作
- 剩余参数与参数引用及回调函数:array_map(), array_filter,array_
- 面试官:讲一下Jvm中如何判断对象的生死?
- xml文件内引用资源
- 已解决:android 模拟器调用本地的webservice 引用不到
- 用Android(安卓)Studio3.0新功能加快构建速度
- android 内存泄漏处理方式