Python调用.net framework主要操作步骤剖析

开发 后端
我们今天在这里通过几个主要的步骤来为大家详细介绍了一下Python调用.net framework的具体实现方法,希望可以给大家带来些帮助。

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 的类库。代码如下:

 

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. namespace test  
  6. {  
  7. public class testclass  
  8. {  
  9. public string func()  
  10. {  
  11. return "hello world";  
  12. }  
  13. }  

 

11. 建立test.py调用刚才写的test.dll类库。代码:

 

  1. import win32com  
  2. import win32com.client  
  3. eng=win32com.client.Dispatch("IronPython.Hosting.PythonEngine")  
  4. eng.execute("import clr")  
  5. eng.execute("import sys")  
  6. eng.execute("""sys.path.append('c:\\\\test')""")  
  7. eng.execute("print sys.path")  
  8. eng.execute("""clr.AddReferenceToFile("abc.dll")""")  
  9. eng.execute("from test import *")  
  10. eng.execute("obj = testclass()")  
  11. eng.execute("print obj.func()") 

 

注意:eng.execute("""sys.path.append('c:\\\\test')""")

这句是将test.dll所在的路径添加到ironPython的sys.path中去。如果不加,AddReferenceToFile将会出错。

以上就是Python调用.net framework的全部步骤。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-06 10:50:15

.NET Framew

2010-01-06 16:45:42

.Net Framew

2010-01-05 18:09:07

.NET Framew

2009-10-23 09:38:59

VB.NET平台调用

2010-01-06 11:21:49

.NET Framew

2010-01-06 13:41:51

.NET Framew

2010-01-12 11:47:09

VB.NET可选参数

2010-01-22 14:19:38

VB.NET调用jar

2010-01-06 18:59:41

.Net Framew

2010-01-05 17:59:54

.NET Framew

2010-01-06 10:36:00

.NET Framew

2010-01-06 17:02:28

.Net Framew

2009-10-15 17:50:48

VB.NET调用API

2010-01-06 15:43:22

.Net Framew

2010-01-05 15:43:13

.NET Framew

2009-12-23 16:15:24

ADO.NET Ent

2012-02-20 14:20:44

JavaPlay Framew

2010-01-06 11:30:22

.NET Framew

2010-01-05 11:26:27

.net Framew

2010-01-06 10:07:35

.NET Framew
点赞
收藏

51CTO技术栈公众号