Linux. Connect ot Oracle. cx_Oracle.DatabaseError: DPI-1047 Cannot locate a 64-bit Oracle Client library: "libclntsh.so
Linux. Connect ot Oracle. cx_Oracle.DatabaseError: DPI-1047 Cannot locate a 64-bit Oracle Client library: "libclntsh.so
我遇到错误 "cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。请参阅 https://oracle.github.io/odpi/doc/installation.html#linux 寻求帮助”
我看到了https://oracle.github.io/odpi/doc/installation.html#oracle-instant-client-zip and
我一直在 Windows 上工作,只在 Linux 系统上学习。我需要帮助解决这个问题。从 python:
连接到 Oracle
import cx_Oracle
con = cx_Oracle.connect('<USER>/<PASSWORD>@<HOST>:<PORT>/<SID>')
我从未从 Linux 连接过。这是第一次。
user@postgresql:~/opt$ cd oracle
user@postgresql:~/opt/oracle$ unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
Archive: instantclient-basic-linux.x64-12.2.0.1.0.zip
inflating: instantclient_12_2/adrci
inflating: instantclient_12_2/BASIC_README
inflating: instantclient_12_2/genezi
inflating: instantclient_12_2/libclntshcore.so.12.1
inflating: instantclient_12_2/libclntsh.so.12.1
inflating: instantclient_12_2/libipc1.so
inflating: instantclient_12_2/libmql1.so
inflating: instantclient_12_2/libnnz12.so
inflating: instantclient_12_2/libocci.so.12.1
inflating: instantclient_12_2/libociei.so
inflating: instantclient_12_2/libocijdbc12.so
inflating: instantclient_12_2/libons.so
inflating: instantclient_12_2/liboramysql12.so
inflating: instantclient_12_2/ojdbc8.jar
inflating: instantclient_12_2/uidrvci
inflating: instantclient_12_2/xstreams.jar
user@postgresql:~$ sudo apt install libaio1
user@postgresql:/etc/ld.so.conf.d$ sudo nano oracle-instantclient.conf
user@postgresql:/etc/ld.so.conf.d$ sudo ldconfig
user@postgresql:/etc/ld.so.conf.d$ sudo export
LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH
Linux
user@postgresql:~$ cat /proc/version
Linux version 5.3.0-46-generic (buildd@lgw01-amd64-003) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #38-Ubuntu SMP Fri Mar 27 17:37:05 UTC 2020
问题已解决。也许这将是 hlepfully:
下载 rpm(oracle-instantclient12.2-basic, oracle-instantclient12.2-devel, oracle-instantclient12.2-devel).
当然,只需要oracle-instantclient12.2
sudo apt-get install oracle-instantclient12.2-basic-12.2.0.*
只需要添加到 PATH:
user@postgresql:~$export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
user@postgresql:~$sudo ldconfig
user@postgresql:~$ sudo nano /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
WSL Ubuntu
- 您将从 https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
下载 linux 的 instantclient-basic 和 instantclient-sqlplus 的 zip 版本
- 创建一个名为 /opt/oracle
的文件夹
sudo mkdir -p /opt/oracle
cd /opt/oracle/
- 现在安装 zip 和 libaio1
apt-get install zip libaio1
cd /opt/oracle/
- 将instantclient basic和sqlplus版本解压到创建的oracle文件夹中。
unzip /location/to/your/download/instantclient-basic-linux.x64-12.2.0.1.0.zip
unzip /location/to/your/download/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
- 将目录更改为 instantclient_12_2
cd instantclient_12_2/
- 运行以下命令
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
- 编辑 .bashrc 文件以设置 oracle 主目录。
sudo nano $HOME/.bashrc
- 将以下行添加到.bashrc 的末尾
# set oracle home at the end of the file
export ORACLE_HOME=/opt/oracle/instantclient_12_2
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
- 和
source $HOME/.bashrc
- 最后,安装cx_Oracle
我遇到错误 "cx_Oracle.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。请参阅 https://oracle.github.io/odpi/doc/installation.html#linux 寻求帮助”
我看到了https://oracle.github.io/odpi/doc/installation.html#oracle-instant-client-zip and
我一直在 Windows 上工作,只在 Linux 系统上学习。我需要帮助解决这个问题。从 python:
连接到 Oracleimport cx_Oracle
con = cx_Oracle.connect('<USER>/<PASSWORD>@<HOST>:<PORT>/<SID>')
我从未从 Linux 连接过。这是第一次。
user@postgresql:~/opt$ cd oracle
user@postgresql:~/opt/oracle$ unzip instantclient-basic-linux.x64-12.2.0.1.0.zip
Archive: instantclient-basic-linux.x64-12.2.0.1.0.zip
inflating: instantclient_12_2/adrci
inflating: instantclient_12_2/BASIC_README
inflating: instantclient_12_2/genezi
inflating: instantclient_12_2/libclntshcore.so.12.1
inflating: instantclient_12_2/libclntsh.so.12.1
inflating: instantclient_12_2/libipc1.so
inflating: instantclient_12_2/libmql1.so
inflating: instantclient_12_2/libnnz12.so
inflating: instantclient_12_2/libocci.so.12.1
inflating: instantclient_12_2/libociei.so
inflating: instantclient_12_2/libocijdbc12.so
inflating: instantclient_12_2/libons.so
inflating: instantclient_12_2/liboramysql12.so
inflating: instantclient_12_2/ojdbc8.jar
inflating: instantclient_12_2/uidrvci
inflating: instantclient_12_2/xstreams.jar
user@postgresql:~$ sudo apt install libaio1
user@postgresql:/etc/ld.so.conf.d$ sudo nano oracle-instantclient.conf
user@postgresql:/etc/ld.so.conf.d$ sudo ldconfig
user@postgresql:/etc/ld.so.conf.d$ sudo export
LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH
Linux
user@postgresql:~$ cat /proc/version
Linux version 5.3.0-46-generic (buildd@lgw01-amd64-003) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #38-Ubuntu SMP Fri Mar 27 17:37:05 UTC 2020
问题已解决。也许这将是 hlepfully: 下载 rpm(oracle-instantclient12.2-basic, oracle-instantclient12.2-devel, oracle-instantclient12.2-devel).
当然,只需要oracle-instantclient12.2
sudo apt-get install oracle-instantclient12.2-basic-12.2.0.*
只需要添加到 PATH:
user@postgresql:~$export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
user@postgresql:~$sudo ldconfig
user@postgresql:~$ sudo nano /etc/profile.d/oracle.sh && sudo chmod o+r /etc/profile.d/oracle.sh
export PATH=$PATH:/usr/lib/oracle/12.2/client64/bin
WSL Ubuntu
- 您将从 https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html 下载 linux 的 instantclient-basic 和 instantclient-sqlplus 的 zip 版本
- 创建一个名为 /opt/oracle 的文件夹
sudo mkdir -p /opt/oracle
cd /opt/oracle/
- 现在安装 zip 和 libaio1
apt-get install zip libaio1
cd /opt/oracle/
- 将instantclient basic和sqlplus版本解压到创建的oracle文件夹中。
unzip /location/to/your/download/instantclient-basic-linux.x64-12.2.0.1.0.zip
unzip /location/to/your/download/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
- 将目录更改为 instantclient_12_2
cd instantclient_12_2/
- 运行以下命令
ln -s libclntsh.so.12.1 libclntsh.so
ln -s libocci.so.12.1 libocci.so
- 编辑 .bashrc 文件以设置 oracle 主目录。
sudo nano $HOME/.bashrc
- 将以下行添加到.bashrc 的末尾
# set oracle home at the end of the file
export ORACLE_HOME=/opt/oracle/instantclient_12_2
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
- 和
source $HOME/.bashrc
- 最后,安装cx_Oracle