在Debian 5上,我一直在尝试为python安装cx_oracle模块而没有任何成功.首先,我安装了Oracle-XE的客户端和它的依赖(在以下链接跟着教程这里).
然后,我使用/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin中的脚本来填充环境变量,例如PATH,ORACLE_HOME和NLS_LANG.
一旦完成,我试图运行:
sudo easy_install cx_oracle
Run Code Online (Sandbox Code Playgroud)
但我不断收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
知道我错过了什么吗?
Bur*_*lid 69
替代方式,不需要RPM.你需要root.
依赖
安装以下包:
apt-get install python-dev build-essential libaio1
Run Code Online (Sandbox Code Playgroud)下载适用于Linux x86-64的Instant Client
从Oracle的下载站点下载以下文件:
解压缩zip文件
将下载的zip文件解压缩到某个目录,我正在使用:
/opt/ora/
Run Code Online (Sandbox Code Playgroud)添加环境变量
在/etc/profile.d/oracle.sh其中创建一个文件
export ORACLE_HOME=/opt/ora/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
Run Code Online (Sandbox Code Playgroud)
在/etc/ld.so.conf.d/oracle.conf其中创建一个文件
/opt/ora/instantclient_11_2
Run Code Online (Sandbox Code Playgroud)
执行以下命令
sudo ldconfig
Run Code Online (Sandbox Code Playgroud)
注意:您可能需要重新启动才能应用设置
创建符号链接
cd $ORACLE_HOME
ln -s libclntsh.so.11.1 libclntsh.so
Run Code Online (Sandbox Code Playgroud)安装cx_Oraclepython包
你可以安装使用 pip
pip install cx_Oracle
Run Code Online (Sandbox Code Playgroud)或手动安装
下载与您的Python和Oracle版本对应的cx_Oracle源zip.然后展开存档,并从解压缩的目录运行:
python setup.py build
python setup.py install
Run Code Online (Sandbox Code Playgroud)tsh*_*ang 11
我建议您抓取rpm文件并使用alien安装它们.这样,您可以稍后运行apt-get purge no-longer-needed.
在我的情况下,我需要的唯一env变量是LD_LIBRARY_PATH,所以我做了:
echo export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib >> ~/.bashrc
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
我想在你的情况下,路径变量将是/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/lib.
在Mac和Linux上,以下对我有用。此命令应下载所需的其他文件,而无需设置环境变量。
python -m pip install cx_Oracle --pre
Run Code Online (Sandbox Code Playgroud)
注意,-- pre选项用于开发和预发行Oracle驱动程序。在发布时,它正在抓取cx_Oracle-6.0rc1.tar.gz,这是必需的。(我正在使用python 3.6)