Python 調用.net framework寫的類庫的方法 詳情


原始作者“tingsking18”和 地址:http://blog.csdn.net/tingsking18/article/details/4135251地址,方便其他朋友提問和指正。

在此基礎上本人稍微了添加了些細節 以便新手們操作 

Python 調用.net framework寫的類庫的方法

准備開發工具等:

      python2.7 下載地址:http://download.csdn.net/download/wukongwu/4559974

      pywin32  下載地址:http://download.csdn.net/detail/wukongwu/4559915

      IronPython_1_1.rar 下載地址: http://download.csdn.net/detail/wukongwu/4560075

 

1. 安裝python2.7和對應的pywin32

安裝方法:略。

 

2. 下載ironPython源代碼 是C#的。

我用的是IronPython1.1的版本, 解壓縮。

3. 用vistual studio 建立一個.NET類庫工程,工程名字為:IronPython。

4.把ironPython目錄下的src子目錄中的

 (1).ironPython目錄的 (不要assemblyInfo.cs) 都拷貝到你的工程目錄里

 (2).ironMath目錄里的c#源文件(不要assemblyInfo.cs)也都拷貝到你的工程目錄里。

這個是傳完的結果

5. 修改AssemblyInfo.cs

[assembly: ComVisible(false)]

將false 改為true

6. 在項目=>屬性=>生成里把 為COM Interop注冊 打上勾

7. 在項目=>屬性=>簽名 里把為程序集簽名 打上勾,選擇強名稱密鑰文件時 選擇新建,輸個文件名,比如 IronPython.snk 這個密鑰可以自動生成也可以手動生成

手動生成的方法:在.Net Framework的命令行界面里用 sn -k IronPython.snk 這個命令.

8. 編譯項目生成 IronPython.dll

9. 在.Net Framework的命令行界面里用 regasm IronPython.dll 注冊COM組件

10. 在.Net Framework的命令行界面里用 gacutil -i IronPython.dll 把庫加到全局緩存里

以上步驟是做一個連接python 與 .Net Framework的通道一樣  也可以理解成 它是連接python 與 .Net Framework的橋

這個形容可能不太正確 請大家給個合理的解釋來完善 Python 調用.net framework寫的類庫的方法 以便新手學習

11.注意: 現在不用在管理 IronPython類庫了  我們重新建一個類庫   建立.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";
        }
    }
}

12.正常生成test.dll

13.我們來測試下 我把我的test.dll 拷貝到文件放在c盤下

建立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("C://test.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 IDLE下運行 這樣會看不見結果   要么直接打開 要么在cmd 環境下  python + 文件名 運行

 

到此為止 結束  以上是本人心得 有什么地方不對 大家盡量提出來  以便新手與大家交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM