导入cx_Oracle模块时出错 [Python]

3 投票
5 回答
19078 浏览
提问于 2025-04-16 22:03

我使用的是64位的Windows 7和Oracle 10g。我安装了python-2.7.2.amd64和cx_Oracle-5.1-10g.win-amd64-py2.7。

当我在代码里导入cx_Oracle模块时,出现了这个错误: 追踪记录(最近的调用在最前面): 文件 "C:\Osebno\test.py",第1行,在 import cx_oracle 导入错误:没有名为cx_oracle的模块

有人能告诉我这是什么问题吗?

5 个回答

1

在安装了cx_Oracle之后,下载Oracle的即时客户端,并确保下载所有的DLL文件。然后把这些DLL文件复制到cx_Oracle.pyd所在的同一个文件夹里,这样就能直接使用了。

我试过,这个方法对我有效。

2

我在Windows上也遇到过这个问题。
我使用了Dependency Walker这个工具,打开了C:\Python\Libs\site-libraries\里的cx_Oracle.pyd文件,并查看了这个工具给出的结果。

Dependency Walker告诉我,我安装的是x86版本的Python 2.7.2,而Oracle客户端和客户端DLL(oci.dll)是x64版本的,同时我还在尝试使用x64版本的cx_Oracle模块。知道了这一点后,我安装了Windows的Python 2.7.2 x86_64版本,结果一切都正常了。
另一种选择是安装x86版本的Oracle客户端和cx_Oracle,但这比安装一个新的Python解释器要麻烦得多。

另外,这对我来说是个新发现,你必须安装Oracle客户端,因为它提供了cx_Oracle使用的'OCI.dll'客户端库。你可以在这里找到它:Oracle客户端安装程序 Windows x64。如果能看看文档,可能会更有帮助。;)

无论如何,如果你遇到导入错误,Dependency Walker可以给你一个很大的线索。不幸的是,导入错误的提示信息往往比较模糊。我也遇到了你提到的同样的错误,还有其他一些不太具体的错误。

4

你试过用 import cx_Oracle(注意大写的 O)来代替 import cx_oracle 吗?

撰写回答