Python编程语言的应用,可以很好的帮助编程人员提高开发效率,而且其应用范围广泛。在这里我们可以先通过对Python调用.net framework的了解来熟悉一下这一语言给我们带来的功能特点。#t#
1. 安装python2.5和对应的pywin32
2. 下载ironPython源代码 是C#的。
我用的是IronPython1.1的版本,从codeplex网站下载IronPython_1_1.rar。解压缩。
3. 用vistual studio 建立一个.NET类库工程,工程名字为:IronPython。
把ironPython目录下的src子目录中的ironPython目录的ironMath目录里的c#源文件(不要assemblyInfo.cs)都考到你的工程目录里。
在工程里增加刚考来的源文件。
4. 修改AssemblyInfo.cs
[assembly: ComVisible(false)]
将false 改为true
5. 在项目=>属性=>生成里把 为COM Interop注册 打上勾
6. 在项目=>属性=>签名 里把为程序集签名 打上勾,选择强名称密钥文件时 选择新建,输个文件名,比如 IronPython.snk, 也可以手动生成密钥文件,然后在这里选择.
在Python调用.net framework的方法中,手动生成的方法:在.Net Framework的命令行界面里用 sn -k IronPython.snk 这个命令.
7. 编译项目生成 IronPython.dll
8. 在.Net Framework的命令行界面里用 regasm IronPython.dll 注册COM组件
9. 在.Net Framework的命令行界面里用 gacutil -i IronPython.dll 把库加到全局缓存里
10. 建立.net framework 的类库。代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace test
- {
- public class testclass
- {
- public string func()
- {
- return "hello world";
- }
- }
- }
11. 建立test.py调用刚才写的test.dll类库。代码:
- import win32com
- import win32com.client
- eng=win32com.client.Dispatch("IronPython.Hosting.PythonEngine")
- eng.execute("import clr")
- eng.execute("import sys")
- eng.execute("""sys.path.append('c:\\\\test')""")
- eng.execute("print sys.path")
- eng.execute("""clr.AddReferenceToFile("abc.dll")""")
- eng.execute("from test import *")
- eng.execute("obj = testclass()")
- eng.execute("print obj.func()")
注意:eng.execute("""sys.path.append('c:\\\\test')""")
这句是将test.dll所在的路径添加到ironPython的sys.path中去。如果不加,AddReferenceToFile将会出错。
以上就是Python调用.net framework的全部步骤。