我尝试在.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
任何帮助将不胜感激? 感谢。
答案 0 :(得分:3)
Windows帮助:
转到命令提示符并设置2个变量 - 例如:
TNS_ADMIN=C:\instant_client\instantclient_11_2
ORACLE_HOME=C:\instant_client\instantclient_11_2
然后从exe安装cx_Oracle模块。如果你使用pip或easy_install,...祝你好运。
您可以在此处获取安装程序:https://pypi.python.org/pypi/cx_Oracle/5.1.3
答案 1 :(得分:2)
我有类似的问题,你必须确保你有:
答案 2 :(得分:2)
尝试通过以上答案中公布的rpm安装它,但它没有奏效。相反的是普通pip install
。
pip install cx_oracle
上面的命令已安装cx_oracle=6.1
请注意,我使用的是python 2.7.14 Anaconda release
和oracle 12c
。
答案 3 :(得分:1)
要从python访问Oracle,您需要(另外)cx_Oracle module。该模块必须位于系统python路径中,或者您必须设置适当的PYTHONPATH。
答案 4 :(得分:1)
我刚遇到同样的问题。首先,您需要为您的操作系统安装适当的Oracle客户端。就我而言,要在Ubuntu x64上安装它,我已按照此说明https://help.ubuntu.com/community/Oracle%20Instant%20Client#Install_RPMs
然后,您需要安装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,但您可以在http://cx-oracle.sourceforge.net/中下载不同的cx_Oracle版本 要检查您拥有哪个Python版本,请键入终端:
python -V
我希望它有所帮助
答案 5 :(得分:1)
Unknown92回答帮助了我(在Windows上)。 请注意,所有版本都必须适合。
我已经下载了cx_Oracle here,对我来说,文件cx_Oracle-5.2.1-12c.win-amd64-py3.5.exe可以使用:
答案 6 :(得分:1)
Windows和Anaconda帮助
Anaconda 4.3.0以Python 3.6为根。目前cx_Oracle仅支持最多3.5个。我尝试在envs中创建3.5环境,但是当运行cx_Oracle-5.2.1-11g.win-amd64-py3.5.exe时,它只在root用户安装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
答案 7 :(得分:1)
就我而言,解决方案是使用:
python3 -m pip install cx_Oracle --upgrade --user
代替
pip3 install cx_Oracle
这是由 pip
中的一些混乱造成的,所以我没有正确安装 cx_Oracle
:
# python3 -m pip -V
pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
# pip3 -V
pip 21.2.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
我希望它可以挽救某人几个小时的生命......
答案 8 :(得分:0)
对我来说问题是我通过DOS pip安装了cx_Oracle,将其改为小写。通过Git Bash安装它可以保持混合大小写。
答案 9 :(得分:-1)
虽然犯了愚蠢的错误,但请确保使用正确的模块名称并尊重大小写
我通过命令行在我的 Windows 机器上以 pip install cx_oracle
的形式安装了这个包。在 spyder 中将其作为 cx_oracle
导入时,它不断给出以下错误:
ModuleNotFoundError: No module named 'cx_oracle'
。
将导入命令中的模块名称更正为 cx_Oracle
(即 capital letter 'O' in oracle)后,导入成功。>