python 打包发布oracle dll_使用pyinstaller制作包含Oracle数据库的可执行程序

本文介绍如何使用PyInstaller将包含cx_Oracle库的Python程序打包成可执行文件,具体步骤包括安装cx_Oracle库和oracle驱动instantclient_11_2,创建测试程序,并通过配置spec文件指定所需的Oracle库。
摘要由CSDN通过智能技术生成

使用pyinstaller制作包含Oracle数据库的可执行程序

准备

首先参考[Linux上pip安装cx_Oracle]安装cx_Oracle库和oracle驱动instantclient_11_2。

这里假定oracle驱动还是解压到/opt/instantclient_11_2目录下,内容大致如下:

/opt/instantclient_11_2

├── adrci

├── BASIC_LITE_README

├── genezi

├── libclntsh.so.11.1

├── libnnz11.so

├── libocci.so.11.1

├── libociicus.so

├── libocijdbc11.so

├── ojdbc5.jar

├── ojdbc6.jar

├── sdk

├── uidrvci

└── xstreams.jar

测试程序

创建一个目录myapp,在其下新建一个test.py文件,内容如下:

import cx_Oracle

conn = cx_Oracle.connect('jhinno/jhinno@192.168.0.188/jhinno')

cursor = conn.cursor ()

cursor.execute ("select sysdate from dual")

row = cursor.fetchone ()

print row

cursor.close ()

conn.close ()

打包spec文件

在myapp目录下创建test.spec文件,内容如下:

# -*- mode: python -*-

a = Analysis(['test.py'],

pathex=['myapp'],

hiddenimports=[],

hookspath=None,

runtime_hooks=None)

a.binaries = a.binaries + [('libclntsh.so', '/opt/instantclient_11_2/libclntsh.so.11.1','BINARY')]

a.binaries = a.binaries + [('libnnz11.so', '/opt/instantclient_11_2/libnnz11.so','BINARY')]

a.binaries = a.binaries + [('libocci.so', '/opt/instantclient_11_2/libocci.so.11.1','BINARY')]

a.binaries = a.binaries + [('libociicus.so', '/opt/instantclient_11_2/libociicus.so','BINARY')]

pyz = PYZ(a.pure)

exe = EXE(pyz,

a.scripts,

a.binaries,

a.zipfiles,

a.datas,

name='test',

debug=False,

strip=None,

upx=True,

console=True )

注意其中a.binaries的配置,将oracle需要用到的库加了进来。

打包

运行pyinstaller命令,如下:

pyinstaller test.spec

打包后在myapp/dist目录下生成test的可执行文件,可以直接运行来测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值