2013-11-22 245 views
0

我有一段时间试图安装cx_Oracle。在Centos 6上安装cx_Oracle

我试过各种版本的Oracle库。我最近得到与32位的11.1库

oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm 

我必须设置环境变量的: [〜]#集| grep -i oracle PATH =/usr/lib/oracle/11.1/client/lib ORACLE_HOME =/usr/lib/oracle/11.1/client/lib LD_LIBRARY_PATH =/usr/lib/oracle/11.1/client/lib: :/家庭/ sekingerg /斌:/usr/lib64/qt-3.3/bin:在/ usr/local/sbin中:在/ usr/local/bin目录:/ sbin目录:/ bin中:/ usr/sbin目录:在/ usr/bin中:/根/斌:/root/.rvm/bin SQLPATH =/usr/lib目录/ ORACLE/11.1 /客户/ lib目录下:

,当我运行pipinstall,它未能找到包含文件:

[~]# pip install cx_Oracle 
Downloading/unpacking cx-Oracle 
    Running setup.py egg_info for package cx-Oracle 
    Traceback (most recent call last): 
     File "<string>", line 16, in <module> 
     File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 
     raise DistutilsSetupError("cannot locate Oracle include files") 
    distutils.errors.DistutilsSetupError: cannot locate Oracle include files 
    Complete output from command python setup.py egg_info: 
    Traceback (most recent call last): 

    File "<string>", line 16, in <module> 

    File "/tmp/pip-build-root/cx-Oracle/setup.py", line 180, in <module> 

    raise DistutilsSetupError("cannot locate Oracle include files") 

distutils.errors.DistutilsSetupError: cannot locate Oracle include files 

---------------------------------------- 
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-root/cx-Oracle 
Storing complete log in /root/.pip/pip.log 

下面是已安装的RPM:

[~]# rpm -qa | grep -i oracle 
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386 
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386 
oracle-instantclient11.1-basic-11.1.0.7.0-1.i386 
[~]# 

我也尝试安装cx_Oracle rpm:cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm,但这也不起作用。

[~]# rpm -ipv cx_Oracle-5.1.2-11g-py33-1.x86_64.rpm 
Preparing packages for installation... 
cx_Oracle-5.1.2-1 

但是在安装之后,仍然无法识别。

[~]# python3 
Python 3.3.2 (default, Nov 18 2013, 12:27:03) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named 'cx_Oracle' 
>>> 

回答

1

我在Debian的前写这个剧本约一岁,安装cx_Oracle:

TMP_ORACLE_HOME="/usr/lib/oracle/11.2/client64" 
dpkg -i $PWD/libpython3.2_3.2.3-2_amd64.deb 
dpkg -i $PWD/libaio1_0.3.107-7_amd64.deb 
dpkg -i $PWD/oracle-instantclient11.2-basic_11.2.0.3.0-2_amd64.deb 
echo "$TMP_ORACLE_HOME/lib" > /etc/ld.so.conf.d/oracle.conf 
echo "export ORACLE_HOME=$TMP_ORACLE_HOME" > /etc/profile.d/oracle.sh 
dpkg -i $PWD/cx-oracle_5.1.2-2-py32_amd64.deb 
cd /usr/lib/python3.2 
mv site-packages dist-packages 
ln -s dist-packages site-packages 
ldconfig 
+0

这确实帮助了很多,但我仍然不能得到模块正常加载。它找不到像核心库'$ python3.3 Python 3.3.3(默认,2013年12月2日,16:16:04) [GCC 4.4.7 20120313(Red Hat 4.4.7-4)] on linux 请输入“help”,“copyright”,“credits”或“license”以获取更多信息。 >>>进口cx_Oracle 回溯(最近通话最后一个): 文件“”,1号线,在 导入错误:libpython3.3m.so.1.0:无法打开共享对象文件:没有这样的文件或目录 > >>任何想法? – SecondGear

0

没有什么我没能解决的问题库。虽然Farhadix的建议是有用的,做一个“进口cx_Oracle”时,我无法摆脱这种错误:

ImportError: libpython3.3m.so.1.0: cannot open shared object file: No such file or directory 

我结束了去除cx_Oracle包(RPM -e cx_Oracle-5.1.2-1.x86_64)和按照来自here的指示从源代码构建模块。这就是我需要做的,以便使用python 3.3扩展到CentOS 6.4。

0

我也遇到过这种情况。由于安装需要“sudo”权限才能进行“pip安装”,因此问题是一个权限问题。

注:我使用的是Oracle Linux 6中,这样的情况可能有所不同

下面是目录列表,其中cx_Oracle.so是继建,所以你可以看到默认的权限(比较cx_Freeze,例如发送,它拥有世界上访问):

[[email protected] /]$ ll /usr/lib64/python2.6/site-packages 
total 4308 
drwxr-xr-x 5 root root 4096 Jan 17 09:48 cx_Freeze 
drwxr-x--- 2 root root 4096 Jan 17 11:30 cx_Oracle-5.1.2-py2.6.egg-info 
-rwxr-x--- 1 root root 351475 Jan 17 11:30 cx_Oracle.so 

我能认同;下面,执行Python作为根这个问题,然后 “进口cx_Oracle” 作品:

[[email protected] cx_OracleTools-8.0]$ sudo ORACLE_HOME=/usr/lib/oracle/11.2/client64 LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client64/lib python 
Python 2.6.6 (r266:84292, Oct 15 2013, 07:32:41) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cx_Oracle 
>>> 

所以......我用锤子将它击中头部......并让我的用户拥有它(这是错误的解决方案,无可否认,可能会有后续的后果。 - 我很想听听,让我流浪的用户以正确的方式“PIP安装”

希望这有助于, Ĵ

+0

你应该使用virtualenv http://www.pythoncentral.io/how-to-install-virtualenv-python/(我推荐在virtualenv-wrapper中使用virtualenv https://pypi.python.org/pypi/virtualenvwrapper)。然后你有独立的python环境,你可以将'pip install'安装到你的virtualenv中。 – k107