一.问题描述
最近在自学python,然后用到Oracle数据库,于是开始学习cx_Oracle模块。
代码:
import cx_Oracle
dbConnect_host= cx_Oracle.makedsn('mylocalhost','myportnumber',sid='orcl')
conn = cx_Oracle.connect('system', 'mypassword',dbConnect_host)
print(conn)
c = conn.cursor()
print(e)
报错信息:
E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/cx_Oracle_test1.py
Traceback (most recent call last):
File "E:/python/learn_python1/cx_Oracle_test1.py", line 1, in <module>
import cx_Oracle as cx
File "E:\python\learn_python1\venv\lib\site-packages\cx_Oracle\__init__.py", line 10, in <module>
from custom_exceptions import Warning, Error, InterfaceError, DatabaseError, DataError, OperationalError, IntegrityError, InternalError, ProgrammingError, NotSupportedError
ModuleNotFoundError: No module named 'custom_exceptions'
Process finished with exit code 1
通过cmd命令行,运行OK
C:\Users\Administrator>python
Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import cx_Oracle
>>>
尝试了百度,CSDN论坛提问的方式,都没有找到解决的方案。
百度上看到一个人和我同样的报错,但是没有获得解答:
https://stackoverflow.com/questions/61569759/modulenotfounderror-no-module-named-custom-exceptions-python3
二.解决方案
我梳理了一下我安装cx_Oracle模块的过程:
因为最开始在pycharm上查找cx_Oracle模块的时候没有找到,就随便安装了一个cx_oracle_on_ctypes模块,发现不能用。
后面了解到pycharm上cx_Oracle模块的名字是cx-Oracle,然后重新安装,就报了提问的那个错误。
刚刚测试了一下,把该项目下的cx_oracle_on_ctypes这个模块删除了,然后import cx_Oracle就正常了。
重新测试,成功
E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/cx_Oracle_test1.py
123
Process finished with exit code 0