如何在python中使用SQLAlchemy修复与db2的连接?

vx6bjr1n  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(216)

我在使用SQLAlchemy连接到IBM Db2 on Cloud中的数据库BLUDB时遇到了问题。以下是我一直使用的代码,它一直工作得很好:

%sql ibm_db_sa://user:pswd@some-host.services.dal.bluemix.net:50000/BLUDB

但现在我得到这个错误:
(ibm程序错误)ibm_db_dbi::程序错误:异常('[IBM][CLI Driver] SQL 1042 C发生了意外的系统错误。SQLSTATE=58004\r SQLCODE= -1042')(有关此错误的背景信息,请参阅:http://sqlalche.me/e/13/f405)需要SQLAlchemy格式的连接信息,例如:postgresql://用户名:密码@主机名/数据库名或现有连接:dict键([])
这些包将始终加载:
import ibm_db
import ibm_db_sa
import sqlalchemy
from sqlalchemy.engine import create_engine
我查看了python db2 documentation on ibm和sqlalchemy错误消息,但没有任何结果。
我在本地的Jupyterlab工作。我最近重新安装了Python和Jupyterlab。这是本地唯一的变化。
我能够成功地在Kaggle和Cognitive Class的云中运行笔记本电脑,我还能够通过Python连接和查询sqlite3,使用我的本地笔记本电脑没有问题。
所有的ibm模块和版本号在安装前后都是一样的,我用requirements.txt重新安装。
在db2diag.log中,下面是最后两个条目:
2020年11月5日14时06分47秒08秒1000 -300 I13371 F372液位:警告PID:17500每日三次:7808程序:python.exe示例:节点:000主机名:台式机-6 FFFO 2 E教育ID:7808功能:DB2 UDB,bsu安全性,sqlexLogPluginMessage,探测器:20数据#1:字符串,大小为43字节loadAuthidMapper:获取模块句柄rc = 126
2020年11月5日14时13分49秒282000 -300 I13745 F373水平:警告PID:3060 TID:12756程序:python.exe示例:节点:000主机名:台式机-6 FFFO 2 E教育ID:12756功能:DB2 UDB,bsu安全性,sqlexLogPluginMessage,探测器:20数据#1:字符串,大小为43字节loadAuthidMapper:获取模块句柄rc = 126

deikduxw

deikduxw1#

我认为这一切的根源将归结于新版本的Python和pip缓存。
你是从哪个版本迁移过来的,现在又是什么版本。这是Python 2到Python 3的变化吗?当改变版本时,通常你需要清理pip安装所有的组件,但是pip确实使用了缓存。即使是那些需要编译的组件,也有很大的可能正在编译Db2组件。
因此,您需要重新安装依赖项
pip install --no-cache-dir

相关问题