Python:import cx\u Oracle ImportError:没有名为cx\u Oracle error的模块

Python:import cx\u Oracle ImportError:没有名为cx\u Oracle error的模块,python,Python,我尝试用.py编写一个用于oracle连接的脚本: #!/usr/bin/python import cx_Oracle connstr='username/pwd@database' conn = cx_Oracle.connect(connstr) curs = conn.cursor() curs.execute('select * from table1;') print curs.description for row in curs: print row conn.clo

我尝试用.py编写一个用于oracle连接的脚本:

#!/usr/bin/python

import cx_Oracle

connstr='username/pwd@database'
conn = cx_Oracle.connect(connstr)
curs = conn.cursor()

curs.execute('select * from table1;')
print curs.description
for row in curs:
   print row
conn.close()
我得到以下错误:

Traceback (most recent call last):
  File "test_SQLPython.py", line 3, in ?
    import cx_Oracle
ImportError: No module named cx_Oracle
如果有任何帮助,我们将不胜感激?
谢谢。

要从python访问Oracle,您还需要。模块必须位于系统python路径中,或者必须将python路径设置为适当的路径。

我刚刚遇到了同样的问题。首先,您需要为您的操作系统安装适当的Oracle客户端。在我的例子中,要在Ubuntu x64上安装它,我遵循以下说明

然后,您需要安装cx_Oracle,这是一个连接到Oracle客户端的Python模块。同样,假设你在64位机器上运行Ubuntu,你应该输入一个shell:

wget -c http://prdownloads.sourceforge.net/cx-oracle/cx_Oracle-5.0.4-11g-unicode-py27-1.x86_64.rpm
sudo alien -i cx_Oracle-5.0.4-11g-unicode-py27-1.x86_64.rpm
如果您已经安装了Python 2.7.x,这将适用于Oracle 11g,但是您可以在中下载不同的cx\U Oracle版本 要检查您的Python版本,请键入终端:

python -V

我希望这能有所帮助

我也遇到过类似的问题,你必须确保:

  • oracle即时客户端
  • cx_Oracle二进制文件(来自SourceForge)
  • 蟒蛇 重要提示:确保它们都是64位或32位,混合会导致问题
  • Windows帮助:

  • 从中获取即时客户端
  • 将目录放入PATH变量中
  • 转到命令提示符(Win+R并键入
    cmd
    ),设置2个与您的位置匹配的变量-例如:

    set TNS\u ADMIN=C:\instant\u client\instantclient\u 11\u 2
    set ORACLE\u HOME=C:\instant\u client\instantclient\u 11\u 2

  • 然后从exe安装cx_Oracle模块。如果您使用pip或easy_安装,…祝您好运


    您可以在此处获得安装程序:

    未知92答案帮助了我(在windows上)。 请注意,所有版本都必须适合

    我已经为我下载了文件cx_Oracle-5.2.1-12c.win-amd64-py3.5.exe,该文件与:

    • Python 3.5.1 64位。出于某种原因,主页上的默认下载链接适用于32位版本
    • oracle实例客户端12.1.0.2.0(名为instantclient basic windows.x64-12.1.0.2.0.zip的文件)

    对我来说,问题是我通过DOS pip安装了cx_Oracle,它将其改为小写。而通过Git Bash安装它则保留了混合情况。

    Windows和Anaconda帮助

    Anaconda4.3.0附带Python 3.6作为根目录。目前,cx_Oracle最多只支持3.5版本。我尝试在envs中创建3.5环境,但在运行cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe时,它只在根目录中安装3.6

    我能找到的唯一解决办法是将根环境从3.6更改为3.5:

    activate root
    conda update --all python=3.5
    
    完成后,运行cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe

    通过进口测试,效果良好

    import CX_Oracle
    

    尝试通过上面答案中发布的rpm安装,但没有成功。取而代之的是普通的
    pip安装

    pip install cx_oracle
    
    上述命令已安装
    cx\u oracle=6.1

    请注意,我使用的是
    Python2.7.14 Anaconda版本
    Oracle12c

    ,虽然这是一个愚蠢的错误,但请确保使用正确的模块名称并遵守大小写

    我通过命令行在我的windows机器上安装了这个软件包,名为
    pip install cx\u oracle
    。在spyder中将其作为
    cx\u oracle
    导入时,它不断给出以下错误:

    Traceback (most recent call last):
      File "test_SQLPython.py", line 3, in ?
        import cx_Oracle
    ImportError: No module named cx_Oracle
    
    ModuleNotFoundError:没有名为“cx\U oracle”的模块


    将导入命令中的模块名称更正为
    cx\u Oracle
    (即大写字母在Oracle中的字母'O')后,导入成功。

    cx\u Oracle.py位于何处?它可能在python路径中没有列出的某个地方,您能澄清一下吗?e、 你说的bt“即时客户端”是什么意思?这里有“insta客户端”可供下载。太棒了!要安装OracleLib,请向下滚动到页面末尾,阅读安装部分。我在想,文件名看起来像是64位的,仅适用于AMD处理器!我使用的是Python 3.5+Oracle 11g+Intel Xeon 64位处理器。6.1是最新版本。英特尔64位处理器至今仍未包括在内。这里的一句话:这将下载并安装一个预编译的二进制文件(如果您的体系结构可用的话)。如果预编译的二进制文件不可用,则将下载、编译源代码并安装生成的二进制文件。我目前有一个conda env,使用Python3.6(仅在Pycharm中,而不是在ipython中)与cx_Oracle一起工作,因此这可能自发布后有所改变。仅此而已。我使用“pip install cx_Oracle”重新安装,大写字母为“O”,并成功导入。谢谢,MrDBA。那么cx\U Oracle模块本身不包括客户端/驱动程序吗?