python語言linux操做系統oracle環境安裝

金句:若是沒把握,最好先Google一下。html

 

一、嚴格按照 https://oracle.github.io/odpi/doc/installation.html#linux 教程一步步作node

包括下載的軟件的版本,安裝的位置,都按照要求準確實施python

過程當中要求安裝 libaio ,原本是使用yum方式便可linux

可是採起各類方法git

(1)用系統自帶的yumgithub

提示:web

This system is not registered with RHN.sql

RHN support will be disabled.數據庫

Setting up Install Processvim

緣由是這個linux版本並無花錢註冊RHN服務,沒辦法直接從官方下載

(2)換軟件源

yum軟件源配置文件位置爲

cd /etc/yum.repos.d/

公司版本的linux對應的配置文件名稱是 rhel-debuginfo.repo

先用 mv rhel-debuginfo.repo rhel-debuginfo.repo_sysbak 命令 備份

而後下載、試用了各類yum源的配置文件,包括:

wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

等等

下載以後,都須要用 yum clean all  和 yum makecache 命令清除和生成一下本地緩存

 

 

可是,並無什麼卵用,因而嘗試下載文件離線安裝:

地址:https://pkgs.org/download/libaio

下載的rpm版本,直接執行

rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm 

報錯了:

warning: libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID f4a80eb5

error: Failed dependencies:

rpmlib(FileDigests) <= 4.6.0-1 is needed by libaio-0.3.109-13.el7.x86_64

rpmlib(PayloadIsXz) <= 5.2-1 is needed by libaio-0.3.109-13.el7.x86_64

缺乏依賴包

 

因而,根據https://blog.csdn.net/jinwufeiyang/article/details/52069498 教程的方法

執行,注意後面的兩個參數是不檢測依賴包和強制安裝

rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm --nodeps --force

結果以下:

warning: libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID f4a80eb5

Preparing...                ########################################### [100%]

   1:libaio                 ########################################### [100%]

error: unpacking of archive failed: cpio: Bad magic

雖然最後仍是有報錯,不過從後面驗證來看,算是成功了

 

而後,執行程序進行驗證

首先,須要到新安裝的python虛擬環境的/bin目錄下,執行 source activate 這個指令確實是須要source來執行的,不信能夠vim activate文件看看,裏面第一行寫着呢。若是從此有相似的文件,均可以這麼效仿一下。

執行成功以後

命令提示符前面會有個新的標記 (虛擬環境名稱)

例如這樣:(pyenv) [root@webreport2 pyenv]# 

這時候就能夠執行 python3 spidey.py 了

 

此處插播,若是oracle客戶端安裝不正確的話,會報錯:

執行命令:

(pyenv) [root@webreport2 oracle]# python3 /app/pyenv/spider.py 2018-09-04 2018-09-05

報錯:

Traceback (most recent call last):

  File "/app/pyenv/spider.py", line 229, in <module>

    main(viewdate)

  File "/app/pyenv/spider.py", line 93, in main

    sqlresult = query('dw_user.t_ciitc_sign_dict')

  File "/app/pyenv/spider.py", line 50, in query

    conn = cx_Oracle.connect('dw_user/dw_user@10.1.65.118:1521/octopus_srv1')

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

從字面意思來看,安裝錯誤就是找不到對應的系統文件。

此處的緣由,是一開始按照網上的「野教程」實施的,另外考慮下載的客戶端程序版本也不對,致使的問題。

後續嚴格執行 https://oracle.github.io/odpi/doc/installation.html#linux  的要求

再次執行命令:

(pyenv) [root@webreport2 pyenv]# python3 spider.py 2018-09-04 2018-09-05

報錯:

Traceback (most recent call last):

  File "spider.py", line 229, in <module>

    main(viewdate)

  File "spider.py", line 93, in main

    sqlresult = query('dw_user.t_ciitc_sign_dict')

  File "spider.py", line 50, in query

    conn = cx_Oracle.connect('dw_user/dw_user@10.1.65.118:1521/octopus_srv1')

cx_Oracle.DatabaseError: ORA-24454: client host name is not set

這麼看來,oracle客戶端是正常工做了,能夠反饋正確的oracle錯誤了。從錯誤來看,是主機名稱配置不對。但程序裏用的是ip地址。

網上找答案,參考的這篇 https://blog.csdn.net/cd_home/article/details/80309167

執行:

sudo /bin/bash -c "echo '127.0.1.1 ${HOSTNAME}' >> /etc/hosts"

 

再次執行命令,就正常了

 

(pyenv) [root@webreport2 pyenv]# python3 spider.py 2018-09-04 2018-09-05

共65家數據待導入

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安邦2018-09-04日數據導入完畢','2018-09-07 11:22:13')

安邦2018-09-04日數據導入完畢

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安誠2018-09-04日數據導入完畢','2018-09-07 11:22:35')

安誠2018-09-04日數據導入完畢

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安華2018-09-04日數據導入完畢','2018-09-07 11:22:48')

安華2018-09-04日數據導入完畢

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安聯2018-09-04日數據導入完畢','2018-09-07 11:22:53')

 

查看 配置文件 vim /etc/hosts

多了一行

127.0.1.1 webreport2

所以可見前面所提的主機名稱配置不對,是運行程序的主機的名稱沒有被解析(不是數據庫主機),這個彷佛和python程序有關。從此相似的報錯也能夠考慮這個方法

相關文章
相關標籤/搜索