PyInstaller打包第三方模块adodb

上次用python的adodb模块写了个访问access数据库的程序,发布时想打包成单独的一个exe文件,完成这个任务的工具是PyInstaller,我试过用它打包一些小python程序,一次就成功了,但adodb就不行了,似乎没办法将adodb模块打包进去.通过查看手册,总算明白是怎么回事了,PyInstaller无法获知通过非常手段导入的模块,
如调用__import__,exec,eval函数.PyInstaller对于这种情况会在warn*.txt日志中留下一句警告:W: delayed  __import__ hack detected at line 0 - adodb (D:/Program Files/Python25/Lib/site-packages/adodb/adodb.pyc)
这句警告说明了adodb.py中通过非常手段导入了一个未知模块.通过查看adodb.py发现它确实是通过__import__导入了一个模块:adodb_odbc.
解决该问题的步骤如下,在PyInstaller根目录的hooks写一个名为hook-adodb.py的文件内容为:
hiddenimports = ['adodb_odbc']
在这个目录上可以发现PyInstaller对于诸多已知模块已经内置提供了相应的hook文件.
接下来删除打包所生成的一些文件,再次执行打包过程,OK.

一些感想:对于非python项目,可以尝试用Python进行快速原型
开发,如验证算法等,当项目期限将至时,转化为其它语言的时间不够时,可用PyInstaller将这个Python程序转化为exe,然后将这个exe分发给最终用户,这样对已有的系统布署不会造成过大的冲击.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值