编辑
2024-12-04
学无止境
00
请注意,本文编写于 41 天前,最后修改于 41 天前,其中某些信息可能已经过时。

目录

📢 Python打包指南:在此基础上封装Oracle数据库
1、py打包dnd组件
2、封装Oracle数据库组件打包
3、打包命令实列

学而时习之,不亦乐乎。

python3调用oracle的工具类,附问题解析及打包过程

📢 Python打包指南:在此基础上封装Oracle数据库

1、py打包dnd组件

普通py命令打包时,错误提示:

企业微信截图_17332979192880.png

注意

原因分析

这个打包后出现该报错原因就是没有将这个tkinterdnd2库打包进exe文件中

相关信息

PyInstaller 命令

将使用以下命令来打包 Python 脚本 vv6.py,同时包含 tkinterdnd2 和 tkdnd 库

py
pyinstaller -F -w -i a.ico vv6.py --paths C:\Python312\lib\site-packages --add-data "C:\Python312\Lib\site-packages\tkinterdnd2;tkinterdnd2"

提示

参数说明

-F:将所有依赖打包成一个单独的可执行文件。

vv5.py:你的 Python 脚本。

--paths D:\python39\lib\site-packages:指定 Python 库路径。

--add-data "D:\python39\lib\site-packages\tkinterdnd2;tkinterdnd2":将 tkinterdnd2 库添加到打包文件中。注意路径格式为 "源路径;目标路径",在 Windows 上使用分号 ; 分隔。

--add-data "D:\python39\lib\site-packages\tkdnd;tkdnd":将 tkdnd 库添加到打包文件中。

--hidden-import=tkinterdnd2:显式指定 tkinterdnd2 作为隐藏导入。

--hidden-import=tkdnd:显式指定 tkdnd 作为隐藏导入。

--clean:清除 PyInstaller 使用的临时文件和缓存。

调试信息:

如果在打包过程中遇到问题,可以将输出重定向到一个日志文件中,以便详细检查:

> build_log.txt 2>&1

这样所有输出(包括错误信息)都会保存到 build_log.txt 文件中,你可以查看该文件以获取详细的调试信息。

2、封装Oracle数据库组件打包

普通py命令打包时,错误提示:缺少OracleClient依赖。

image.png

  1. 在此链接下载Oracle临时客户端,注意版本及位数

https://www.oracle.com/sg/database/technologies/instant-client/winx64-64-downloads.html

image.png

  1. 这时候我们需要将本地部署的 instantclient 文件夹中的几个.dll文件拷贝到打包文件夹中。

注意

一、运行时需将dll文件放入python.exe同级文件夹

image.png

二、打包时需将dll文件放入打包文件夹有exe执行文件目录下即可

image.png

  1. 然后重新执行打包运行文件

  2. 打包同样要注意每个模块的版本一致性哦,如果你放的 OracleClient 版本跟本地 Python 或者 Cx-Oracle 版本不一致同样会报错

3、打包命令实列

提示

sh
py打包命令 (C:\Python312\python.exe) pyinstaller -F -i a.ico vv5.py pyinstaller -F -w -i a.ico vv5.py pyinstaller -F -w -i a.ico vv6.py --paths C:\Python312\lib\site-packages --add-data "C:\Python312\Lib\site-packages\tkinterdnd2;tkinterdnd2" --hidden-import=tkinterdnd2 --hidden-import=tkdnd --clean > build_log.txt 2>&1 pyinstaller -F -w -i a.ico vv6.py --paths C:\Python312\lib\site-packages --add-data "C:\Python312\Lib\site-packages\tkinterdnd2;tkinterdnd2" --hidden-import=tkinterdnd2 --hidden-import=tkdnd --clean pyinstaller -F -w -i a.ico vv6.py --paths C:\Python312\lib\site-packages --add-data "C:\Python312\Lib\site-packages\tkinterdnd2;tkinterdnd2" --add-data "C:\Python312\Lib\site-packages\*.dll;." --clean

More info call: 微信/企业微信/钉钉/QQ/手机号(都没有 就不给)

本文作者:木白非白

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!