【发布时间】:2012-05-12 04:12:28
【问题描述】:
我对此发表另一个问题感到很抱歉,但我读过的所有其他问题都以不一定适用或解决我的问题的解决方案结束。
我在 CentOS 6.2 上运行 Oracle。数据库已启动,sqlplus 连接正常。我正在使用 Python 3.2 和 Oracle 11.2.0.3
我找到并安装包 cx_Oracle-5.1.1-11g-py32-1.x86_64.rpm 没有错误。
[paws@linux ~]$ ls -al /usr/lib/python3.2/site-packages
total 360
drwxr-xr-x. 2 root root 4096 May 2 12:04 .
drwxr-xr-x. 3 root root 4096 Apr 13 09:31 ..
-rw-r--r--. 1 root root 898 Oct 8 2011 cx_Oracle-5.1.1-py3.2.egg-info
-rwxr-xr-x. 1 root root 353356 Oct 8 2011 cx_Oracle.cpython-32mu.so
[paws@linux ~]$
但是,当尝试导入 cx_Oracle 时,我仍然收到导入错误。我检查了 PYTHONPATH 如下所示,并且有相应的目录:
[paws@linux ~]$ python
Python 3.2.2 (default, Apr 13 2012, 09:15:56)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
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
>>> import sys
>>> print (sys.path)
['', '/home/paws', '/usr/lib/python3.2/site-packages', '/usr/local/lib/python32.zip', '/usr/bin/Python-3.2.2/Lib', '/usr/bin/Python-3.2.2/Lib/plat-linux2', '/usr/bin/Python-3.2.2/build/lib.linux-x86_64-3.2', '/usr/local/lib/python3.2/site-packages']
还有什么我可以检查的来解决这个问题吗?我在 Windows 上安装 cx_Oracle 很多次都没有问题,但这是第一次在 linux 上,所以我一定缺少一些简单的东西。
非常感谢任何帮助。
【问题讨论】:
-
不知道为什么找不到它,但也许可以尝试添加符号链接(在站点包目录中:ln -s cx_Oracle.cpython-32mu.so cx_Oracle)
-
不幸的是,添加符号链接似乎没有任何影响。与原始帖子中的消息相同。奇怪。
-
不知道是不是权限问题...尝试>>>sudo python,然后导入cx_Oracle
-
感谢您跟进此 Gerrat。不幸的是,以 root 身份运行会返回相同的消息。非常令人沮丧。
-
@Dwane...我对 linux 比较陌生,但我觉得你的问题很有趣,所以我真的很好奇这个问题可能是什么。还有两件事要查看,那就是 cd 到您的 site-packages 目录,从那里运行 python,看看它是否会从当前目录导入它;或者看看:“import imp”、“imp.find_module('cx_Oracle')”是否告诉你什么。
标签: python linux centos cx-oracle