在 运行 时使用 SQL 但在调试时不会出现浮点异常
Floating point exception when using SQL when run but not when debugged
作为我的 Python 程序的一部分,我创建了一个方法,该方法 运行s sql 在 Db2 服务器上进行查询。这是:
def run_query(c, query, return_results=False):
stmt = db.exec_immediate(c, query)
if return_results:
df = {}
row = db.fetch_assoc(stmt)
for key in [key.lower() for key in row.keys()]:
df[key] = []
while row:
for key in [key .lower() for key in row.keys()]:
df[key].append(row[key.upper()])
row = db.fetch_assoc(stmt)
return pd.DataFrame(df)
它使用 ibm_db API 库,其目标是 运行 一个 SQL 查询。如果需要结果,它将结果集转换为 pandas 数据框以供程序使用。当我 运行 程序使用 print(run_query(conn, "SELECT * FROM ppt_products;", True))
打印返回的数据帧时,它不会打印任何内容,而是退出并显示此错误代码:Process finished with exit code 136 (interrupted by signal 8: SIGFPE)
(顺便说一句,我正在使用 PyCharm专业的)。但是,当我在 PyCharm 中使用 pydev 调试器调试程序时,程序 运行 顺利并打印出所需的输出,它应该如下所示:
id brand model url
0 2392 sdf rtsg asdfasdfasdf
1 23452345 sdf rtsg asdfasdfasdf
2 6245 sdf rtsg asdfasdfasdf
3 8467 sdf rtsg asdfasdfasdf
我曾尝试调试浮点异常,但只能通过名为 fpectl 的模块找到 Python 2 的解决方案,该模块可用于打开和关闭浮点异常。
如有任何帮助,我将不胜感激。
错误仅发生在 PyCharm。当我 运行 它使用命令行时,错误没有发生。这使我相信错误可能出在 运行ning 脚本的 JetBrains 机制中。感谢 data_henrik 使用 pandas.read_sql 的建议,因为它简化了从 SQL 查询中获取结果集的过程。
作为我的 Python 程序的一部分,我创建了一个方法,该方法 运行s sql 在 Db2 服务器上进行查询。这是:
def run_query(c, query, return_results=False):
stmt = db.exec_immediate(c, query)
if return_results:
df = {}
row = db.fetch_assoc(stmt)
for key in [key.lower() for key in row.keys()]:
df[key] = []
while row:
for key in [key .lower() for key in row.keys()]:
df[key].append(row[key.upper()])
row = db.fetch_assoc(stmt)
return pd.DataFrame(df)
它使用 ibm_db API 库,其目标是 运行 一个 SQL 查询。如果需要结果,它将结果集转换为 pandas 数据框以供程序使用。当我 运行 程序使用 print(run_query(conn, "SELECT * FROM ppt_products;", True))
打印返回的数据帧时,它不会打印任何内容,而是退出并显示此错误代码:Process finished with exit code 136 (interrupted by signal 8: SIGFPE)
(顺便说一句,我正在使用 PyCharm专业的)。但是,当我在 PyCharm 中使用 pydev 调试器调试程序时,程序 运行 顺利并打印出所需的输出,它应该如下所示:
id brand model url
0 2392 sdf rtsg asdfasdfasdf
1 23452345 sdf rtsg asdfasdfasdf
2 6245 sdf rtsg asdfasdfasdf
3 8467 sdf rtsg asdfasdfasdf
我曾尝试调试浮点异常,但只能通过名为 fpectl 的模块找到 Python 2 的解决方案,该模块可用于打开和关闭浮点异常。
如有任何帮助,我将不胜感激。
错误仅发生在 PyCharm。当我 运行 它使用命令行时,错误没有发生。这使我相信错误可能出在 运行ning 脚本的 JetBrains 机制中。感谢 data_henrik 使用 pandas.read_sql 的建议,因为它简化了从 SQL 查询中获取结果集的过程。