⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Known Python Issues

不幸的是,有一些问题要么超出了我们的控制范围,要么非常难以追踪。根据您的工作流程,您可能需要了解以下这些问题。

Numpy 导入多线程

在使用多线程并直接获取结果为Numpy数组或通过Pandas DataFrame间接获取结果时,可能需要确保导入了numpy.core.multiarray。 如果此模块未从主线程导入,并且在执行期间另一个线程尝试导入它,这可能会导致死锁或崩溃。

为了避免这种情况,建议在启动线程之前import numpy.core.multiarray

DESCRIBESUMMARIZE 在 Jupyter 中返回空表

DESCRIBESUMMARIZE 语句返回一个空表:

%sql
CREATE OR REPLACE TABLE tbl AS (SELECT 42 AS x);
DESCRIBE tbl;

为了解决这个问题,将它们包装到一个子查询中:

%sql
CREATE OR REPLACE TABLE tbl AS (SELECT 42 AS x);
FROM (DESCRIBE tbl);

JupySQL在IPython中的Protobuf错误

在IPython中加载JupySQL扩展失败:

In [1]: %load_ext sql
ImportError: cannot import name 'builder' from 'google.protobuf.internal' (unknown location)

解决方案是修复protobuf包。这可能需要卸载冲突的包,例如:

%pip uninstall tensorflow
%pip install protobuf

运行 EXPLAIN 渲染换行符

在Python中,EXPLAIN语句的输出包含硬换行符(\n):

In [1]: import duckdb
   ...: duckdb.sql("EXPLAIN SELECT 42 AS x")
Out[1]:
┌───────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│  explain_key  │                                                   explain_value                                                   │
│    varchar    │                                                      varchar                                                      │
├───────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ physical_plan │ ┌───────────────────────────┐\n│         PROJECTION        │\n│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │\n│             x   …  │
└───────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

为了解决这个问题,print 输出 explain() 函数的结果:

In [2]: print(duckdb.sql("SELECT 42 AS x").explain())
Out[2]:
┌───────────────────────────┐
│         PROJECTION        │
│   ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─   │
│             x             │
└─────────────┬─────────────┘
┌─────────────┴─────────────┐
│         DUMMY_SCAN        │
└───────────────────────────┘

请也查看Jupyter指南以获取使用Jupyter与JupySQL的提示。

在Windows上导入DuckDB Python包时出错

在Windows上导入DuckDB时,Python运行时可能会返回以下错误:

import duckdb
ImportError: DLL load failed while importing duckdb: The specified module could not be found.

解决方案是安装 Microsoft Visual C++ Redistributable package