C#调用Arcpy方法

时间:2021-10-08 08:41:43

1、安装InronPython

要在.NET环境中使用Python,先要安装InronPython(当然也要安装Python),,下载地址: 或 https://ironpython.codeplex.com/


2、添加引用库

在Visual Studio新建一个工程后,添加引用IronPython.dll和Microsoft.Scripting.dll(位于InronPython的安装目录下)。


3、从文件中加载Python代码

在工程中新建一个Python文件,如hello.py,并设置其属性Copy to Output Directory的值为Copy if newer。在hello.py下编写如下代码:

def say_hello():     print "hello!" def get_text():     return "text from hello.py" def add(arg1, arg2):     return arg1 + arg2

C#代码:

var engine = IronPython.Hosting.Python.CreateEngine(); var scope = engine.CreateScope(); var source = engine.CreateScriptSourceFromFile("hello.py"); source.Execute(scope); var say_hello = scope.GetVariable<Func<object>>("say_hello"); say_hello(); var get_text = scope.GetVariable<Func<object>>("get_text"); var text = get_text().ToString(); Console.WriteLine(text); var add = scope.GetVariable<Func<object, object, object>>("add"); var result1 = add(1, 2); Console.WriteLine(result1); var result2 = add("hello ", "world"); Console.WriteLine(result2);

4、使用Python安装的第三方模块问题

python代码文件加上如下几行:

import sys sys.path.append(‘C:\\Python27\\lib‘) sys.path.append(‘C:\\Python27\\lib\\site-packages\\setuptools-12.0.3-py2.7.egg‘) sys.path.append(‘C:\\Python27\\lib\\site-packages\\rsa-3.1.1-py2.7.egg‘) import rsa