Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "問題

studywell發表於2020-03-31

參考:

https://blog.csdn.net/zhaoyq008/article/details/94018743


        python 打包後,在別的機器遇上執行,提示報錯,報錯內容為:

Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See for help

    

根本問題:打包時未將oracle dll檔案打包進去,導致執行找不到連結庫。

    

臨時解決辦法:

 方法一:

    1、安裝oracle 64位客戶端

    2、配置環境path,將客戶端的目錄,比如d:\oracle\product\11.2.0\client_1\bin 配置到path中

    3、前面兩步做完,執行報了另一個錯 ora-01804 ,將 ORACLE_HOME目錄設定為 d:\oracle\product\11.2.0\client_1 後,問題解決。


方法二:

    1、下載輕量級的Oracle客戶端: 比如 instantclient-basic-windows.x64-11.2.0.4.0.zip

    2、配置環境變數path:      將客戶端的目錄,比如 D:\oracle\instantclient_11_2 新增到 path

    3、配置環境變數ORACL_HOME:     將客戶端的上一級目錄 ,比如 D:\oracle 設定為ORACLE_HOME的值

    4、上面3步做完,執行報錯:```nls_lan python Error: 'ascii' codec can't encode characters in position 28-31: ordinal not in range(128),```;   然後新增環境變數NLS_LANG,設定為:AMERICAN_AMERICA.ZHS16GBK,其值是資料庫nls_database_parameters中NLS_LANGUAGE,NLS_TERRITORY,NLS_CHARACTERSET分別對應的值;    設定完成後執行成功。


方法三:    linux 解決方法

    1、下載輕量級的oracle客戶端並解壓安裝

    2、配置環境變數LD_LIBRARY_PATH=[oracle客戶端安裝目錄]:$LD_LIBRARY_PATH ,NLS_LANG=[oracle資料庫NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET] ,並新增到 ~/.bash_profile 中

    3、重新登入系統 或 source ~/.bash_profile 使環境變數生效

    4、重新執行後成功


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2683542/,如需轉載,請註明出處,否則將追究法律責任。

相關文章