1.安装python2.5和对应的pywin32
2.下载ironPython源代码.是C#的
3.用vistual studio 建立一个.NET类库工程,把ironPython的src里的ironPython的ironMath里的c#源文件(不要assemblyInfo.cs)都考到你的工程目录里 在工程里增加刚考来的源文件.
4如果是vistual studio 2005的话,工程里会自动生成 assemblyInfo.cs
把 其中的[assembly: ComVisible(false)] 改成true,其它不变,如果是低版本的vistual studio,没有这个文件则修改 IronPython.Hosting.PythonEngine.cs, 在前面加上
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ComIronPython")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("moto")]
[assembly: AssemblyProduct("ComPython")]
[assembly: AssemblyCopyright("版权所有 (C) xxxx 2008")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(true)]
[assembly: Guid("e95eaf43-da8d-44d2-a268-133ec195d594")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
其中最重要的是ComVisible和Guid这两句.
5.在项目=>属性=>生成里把 为COM Interop注册 打上勾
6.在项目=>属性=>签名 里把为程序集签名 打上勾,选择强名称密钥文件时 选择新建,输个文件名,比如 IronPython.snk, 也可以手动生成密钥文件,然后在这里选择.
手动生成的方法:在.Net Framework的命令行界面里用 sn -k IronPython.snk 这个命令.
7.编译项目生成 IronPython.dll
8.在.Net Framework的命令行界面里用 regasm IronPython.dll 注册COM组件
9.在.Net Framework的命令行界面里用 gacutil -i IronPython.dll 把库加到全局缓存里
10. 现在运行Python的comdline, 假设在python里要调用的.NET库是 test.dll, 其中namespace是test,类名是testclass, 函数是func
11.输入以下代码:
>>>import win32com
>>>import win32com.client
>>>eng=win32com.client.Dispatch("IronPython.Hosting.PythonEngine")
>>>eng.execute("import clr")
>>>eng.execute("libname=\"test.dll\"")
>>>eng.execute("clr.AddReferenceToFile(libname)")
>>>eng.execute("from test import *")
>>>eng.execute("obj = testclass()")
>>>eng.execute("print obj.func()")
当然也可以写一个IronPython调用net的callDotNet.py文件,在这里用
>>>eng.execute("import callDotNet.py")
试图在互联网上划出国界的举动是愚蠢的!!!
把人当成猪羊圈养,草料永远都不够!把人当人待,人有无限的创造力! “人口减少一半,人们两倍富有”的观念为“一种非常糟糕的自甘堕落—这背后的潜台词是,似乎中国人是封闭围栏中的动物,对周围那些自己赖以生存的资源,除了咀嚼,别无办法。”
我的像册:
http://picasaweb.google.com/bjwf2000/
我的主页:
http://bjwf2000.googlepages.com/