C#调用Python脚本,执行脚本中的函数

本文介绍了如何在C#中通过Python实现路径扩展和代理调用,解决了C#运行时找不到模块的问题,并展示了如何在C#中调用Python函数的方法。

C#代码:

static void Main(string[] args)
        {
            ScriptEngine engine = Python.CreateEngine();
            ICollection<string> Paths = engine.GetSearchPaths();
            Paths.Add(@"D:\Program Files\Python2.7\libs");
            Paths.Add(@"D:\Program Files\Python2.7\Lib");
            engine.SetSearchPaths(Paths);
            ScriptSource source = engine.CreateScriptSourceFromFile("C:\\Users\\Administrator\\Desktop\\test.py");
            CompiledCode code = source.Compile();
            ScriptScope scope = code.DefaultScope;
  
            code.Execute();
            var TelephoneNumberF= scope.GetVariable<Func<object, object>>("TelephoneNumberF");
dynamic obj = TelephoneNumberF("C:\\Users\\Administrator\\Desktop\\apk\\test.txt");
string t= obj[0]; Console.Read();

}

Python代码:

#coding:utf-8

TelephoneNumber='kk'
def TelephoneNumberF():
    return TelephoneNumber

 

解决的问题:

1、C#运行时找不到模块,用Paths.Add(@"D:\Program Files\Python2.7\libs");将标准库链接进去。

2、C#调取Python中函数怎么样调取的问题,var TelephoneNumberF= scope.GetVariable<Func<object, object>>("TelephoneNumberF");

     TelephoneNumberF就是C#中的函数了。Func<object, object>,Python中有一个参数就写2个object,有2个参数就写3个object。

3、vs下装了IronPython,vs2013版。

转载于:https://www.cnblogs.com/pShan/p/5160649.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值