標籤:
使用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_Oracleconn = cx_Oracle.connect(‘jhinno/[email protected]/jhinno‘) cursor = conn.cursor ()cursor.execute ("select sysdate from dual")row = cursor.fetchone ()print rowcursor.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的可執行檔,可以直接運行來測試。
轉載請以連結形式標明本文地址
本文地址:http://blog.csdn.net/kongxx/article/details/50637058
使用pyinstaller製作包含Oracle資料庫的可執行程式