码迷,mamicode.com
首页 > 编程语言 > 详细

IronPython打包记录之二:外部dll和配置文件 (转)

时间:2014-12-17 17:55:47      阅读:1765      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   使用   sp   on   文件   

原文链接:http://xufive.blog.163.com/blog/static/172326168201252143343849/

 

解决了IronPython的源码打包问题,却无法把源码中调用的外部dll文件包含进去,心情郁闷了几天。然天无绝人之路,老天爷不忍心饿不死瞎家雀。和朋友L闲聊时,说起了我的困惑,他说,有可能是路径的问题。

一语惊醒梦中人!

这是我导入dll的代码:

         ……
                import clr
                clr.AddReferenceToFile("Rcg.RFID.dll")
                ……

Rcg.RFID.dll 就是我的代码要调用的外部dll文件名,和调用它的源码在同一级路径下,因此使用可相对路径。该文件的绝对路径是D:\project\share_xufive\Baidu\pyReader\,增加路径代码之后的代码如下:

         ……
                import sys
                sys.path.append(r‘D:\project\share_xufive\Baidu\pyReader‘)
                import clr
                clr.AddReferenceToFile("Rcg.RFID.dll")
                ……

再次运行打包脚本,得到pyReader.dll和pyReader.exe两个文件,点击运行,见到了期望中的窗口界面!不敢高兴太早,点击按钮测试功能、查看日志问文件,一切正常。将pyReader.dll和pyReader.exe复制到他处测试,发现仍然无法正常工作。只用了一秒钟,我就想到了问题所在:缺少位置文件。把配置文件复制过来,终于大功告成!

总结:

    1. 调用外部动态库文件,不能使用相对路径,必须要追加该文件绝对路径到sys.path中,因为该动态库文件将和源码一起被打包到生成的目标动态库文件中。
    2. 资源文件、配置文件等,可以使用相对路径,这些文件不会被打包到生成的目标动态库文件中。

IronPython打包记录之二:外部dll和配置文件 (转)

标签:style   blog   http   ar   color   使用   sp   on   文件   

原文地址:http://www.cnblogs.com/zhangjunjun203/p/4169801.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!