SqlAlchemy调用cx_Oracle失败:ModuleNotFoundError问题求助
问题:运行Python脚本提示找不到cx_Oracle模块
- 在PowerShell及VSCode中运行
ib_newsletter_v2.py,切换工作目录与解释器后仍报错 - 已安装OracleDB和SqlAlchemy,同事可正常运行
报错信息
PS C:\Users\USERNAMEPLACEHOLDER\Downloads>python ib_newsletter_v2.py Traceback (most recent call last): File "C:\Users\USERNAMEPLACEHOLDER\Downloads\ib_newsletter_v2.py", line 15, in <module> db = dl_db.DataLendDB('EQLVXRAIL-NJ-W2-ORCLDBPRD01.equilend.com', '1521', 'EQMRKT01', True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\USERNAMEPLACEHOLDER\Downloads\dl_IB.py", line 25, in __init__ self.engine = create_engine(con_str) ^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in create_engine File "C:\Users\USERNAMEPLACEHOLDER\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned return fn(*args, **kwargs) # type: ignore[no-any-return] ^^^^^^^^^^^^^^^^^^^ File "C:\Users\USERNAMEPLACEHOLDER\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\sqlalchemy\engine\create.py", line 599, in create_engine dbapi = dbapi_meth(**dbapi_args) ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\USERNAMEPLACEHOLDER\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\sqlalchemy\dialects\oracle\cx_oracle.py", line 1104, in import_dbapi import cx_Oracle ModuleNotFoundError: No module named 'cx_Oracle' PS C:\Users\USERNAMEPLACEHOLDER\Downloads> pip install sqlalchemy Requirement already satisfied: sqlalchemy in c:\users\USERNAMEPLACEHOLDER\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (2.0.32) Requirement already satisfied: typing-extensions>=4.6.0 in c:\users\USERNAMEPLACEHOLDER\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (4.12.2) Requirement already satisfied: greenlet!=0.4.17 in c:\users\USERNAMEPLACEHOLDER\appdata\local\packages\pythonsoftwarefoundation.python.3.11_qbz5n2kfra8p0\localcache\local-packages\python311\site-packages (3.0.3) PS C:\Users\USERNAMEPLACEHOLDER\Downloads>
解决步骤
- 对齐Python解释器与pip
运行python -m pip --version,确认pip所属路径和运行脚本的Python路径一致(从报错看,你的Python版本为3.11,路径在PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0目录下) - 安装cx_Oracle模块
执行python -m pip install cx_Oracle,避免直接用pip导致环境不匹配 - 验证安装结果
运行python -c "import cx_Oracle",无报错则说明安装成功 - 适配OracleDB的方言配置
若你实际使用的是OracleDB(cx_Oracle的替代库),需修改连接字符串为oracle+oracledb://...,而非默认的oracle+cx_oracle://...,否则SqlAlchemy仍会尝试加载cx_Oracle模块
内容的提问来源于stack exchange,提问作者EquiJake
相关产品推荐
相关产品推荐

