在Python中安装cx_Oracle
我在使用Debian 5,想安装cx_oracle这个Python模块,但一直没成功。首先,我安装了oracle-xe-client和它的依赖(按照这个链接的教程 这里)。
然后,我使用了/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin目录下的脚本来设置环境变量,比如PATH、ORACLE_HOME和NLS_LANG。
完成这些后,我尝试运行:
sudo easy_install cx_oracle
但是我总是收到以下错误信息:
Searching for cx-oracle
Reading http://pypi.python.org/simple/cx_oracle/
Reading http://cx-oracle.sourceforge.net
Reading http://starship.python.net/crew/atuining
Best match: cx-Oracle 5.0.4
Downloading http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4.tar.gz?download
Processing cx_Oracle-5.0.4.tar.gz
Running cx_Oracle-5.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xsylvG/cx_Oracle-5.0.4/egg-dist-tmp-8KoqIx
error: cannot locate an Oracle software installation
有没有人知道我漏掉了什么?
12 个回答
下面的方法在我的Mac和Linux上都能用。这条命令可以下载所需的额外文件,不需要设置环境变量。
python -m pip install cx_Oracle --pre
需要注意的是,--pre这个选项是用来获取Oracle驱动的开发版和预发布版的。截至目前,它会下载cx_Oracle-6.0rc1.tar.gz
这个文件,这是必需的。(我使用的是Python 3.6)
这是一个不需要使用RPM包的替代方法。你需要有root
权限。
依赖项
安装以下软件包:
apt-get install python-dev build-essential libaio1
下载 Instant Client for Linux x86-64
从Oracle的下载网站下载以下文件:
解压缩zip文件
将下载的zip文件解压到某个目录,我使用的是:
/opt/ora/
添加环境变量
在
/etc/profile.d/oracle.sh
中创建一个文件,内容包括:export ORACLE_HOME=/opt/ora/instantclient_11_2 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
在
/etc/ld.so.conf.d/oracle.conf
中创建一个文件,内容包括:/opt/ora/instantclient_11_2
执行以下命令:
sudo ldconfig
注意:你可能需要重启才能应用设置
创建符号链接
cd $ORACLE_HOME ln -s libclntsh.so.11.1 libclntsh.so
安装
cx_Oracle
Python包你可以使用
pip
来安装pip install cx_Oracle
或者手动安装
下载与您的Python和Oracle版本相对应的cx_Oracle源代码zip。然后解压缩该文件,并在解压后的目录中运行:
python setup.py build python setup.py install
我建议你下载rpm文件,然后用alien这个工具来安装。这样的话,你以后可以运行 apt-get purge no-longer-needed
来清理不再需要的东西。
就我来说,我只需要一个环境变量,就是 LD_LIBRARY_PATH
,所以我这样做了:
echo export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc
我想在你的情况下,这个路径变量应该是 /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib
。