• 使用pyinstaller打包使用cx_Oracle模块的程序出现The specified module could not be found的问题


    pyinstaller看起来并不会将动态链接库自动打包,所以我们需要告诉pyinstaller要打包哪些动态链接库,步骤如下(假设python文件名为 oracletest.py):

    1. 使用pyinstaller -F oracletest.py 打包后会生成一个oracletest.spec文件,我们要修改这个spec文件。

    将 a.binaries, 改为

    a.binaries+[('oraociei12.dll','C:\oracle\instantclient_12_2\oraociei12.dll','BINARY'),('oci.dll','C:\oracle\instantclient_12_2\oci.dll','BINARY'),('oraons.dll','C:\oracle\instantclient_12_2\oraons.dll','BINARY')],

    以上路径需要参照oracle instantclient 的存放目录进行修改。

    2. 依照spec文件打包,执行命令如下:

    pyinstaller -F oracletest.spec

    3.现在打包之后会将动态链接库打包进exe包。因为oracle的这几个动态链接库非常大,所以导致打包完的exe包也非常大。

    以上方法参考stackoverflow的解决方案,经个人实测发现里面提到的动态链接库还不够,我这里用到的动态链接库如上文所述。

    参考链接:https://stackoverflow.com/questions/36478831/pyinstaller-cx-oracle-interfaceerror-unable-to-acquire-oracle-environment-hand/36483476

  • 相关阅读:
    科普园地
    专家段 错误 新闻
    16进制转rgb
    图片截取0825
    域名的问题 图片显示不出来
    height cell0809
    添加银行卡
    DeviceDelegateHelper.m
    UUID
    MBProgressHUD 动画
  • 原文地址:https://www.cnblogs.com/vanwoos/p/12020727.html
Copyright © 2020-2023  润新知