注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Bioinformatics home

 
 
 

日志

 
 

Python 调用.net framework写的类库的方法  

2011-08-12 23:58:50|  分类: python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

转自(http://blog.csdn.net/tingsking18/article/details/4135251)

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, 也可以手动生成密钥文件,然后在这里选择.
手动生成的方法:在.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将会出错。



ironpython调用.net(C#)类库
2011-04-27 11:56
首先创建一个C#类库(classLibrary)
namespace ClassLibrary1
{
    public class Class1
    {
        public string str()
        {
            return "123";
        }
    }
}
然后vs生成方案
在项目文件夹bin\Debug\中找到ClassLibrary1.dll
然后新建一个ironpython控制台项目  把ClassLibrary1.dll文件复制到ironpython项目文件夹下
执行以下代码
 import clr
clr.AddReferenceToFile("ClassLibrary1.dll");
import ClassLibrary1
cla= ClassLibrary1.Class1()
print cla.str()
  评论这张
 
阅读(1281)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017