我有两个分别运行Python 2.4和2.6的RHEL服务器。我需要访问的另一台服务器上有一个Oracle数据库。
我试图在我的RHEL服务器上安装cx_oracle,但发现必须首先安装Oracle客户端。
问题是,我无权在两台RHEL服务器上安装Oracle客户端。在相同的服务器上,Perl程序可以使用以下命令连接到Oracle数据库:
DBI->connect("dbi:Oracle:host=myhost.prod.com;sid=prddb",'username','password')
如果不安装cx_oracle和Oracle客户端,Python可以做同样的事吗?或者有没有关于如何自己编写模块来做同样事情的建议?
提前致谢!
答案 0 :(得分:5)
摘自http://omz-software.com/pythonista/forums/discussion/297/oracle-database/p1:
Oracle没有纯粹的python客户端,可能永远不会。即使像SQLalchemy这样精彩的第三方工具集仍然依赖于下面的cx_Oracle来与Oracle数据库服务器进行实际通信。
- 而且,由Google决定,答案是否定的:现在似乎没有任何纯Python客户端。
答案 1 :(得分:4)
通常,您只需要库,这些库不一定需要sudo权限。将它们提取到软件可以读取的位置并相应地设置以下环境变量:
ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora
我有最好的运气跳过tnsnames,只是在连接中指定主机,端口等,但很可能你需要它用于cx_oracle ...我不记得从什么时候开始使用它很久以前
答案 2 :(得分:0)
如果您不想使用 cx_Oracle ,则应使用expect脚本。 (对于python pexpect)。但是你需要谨慎处理所有期望。