pytables 的 DLL 加载失败

Posted

技术标签:

【中文标题】pytables 的 DLL 加载失败【英文标题】:DLL load failed for pytables 【发布时间】:2019-10-09 18:14:21 【问题描述】:

运行包含 pytables 的代码时出现以下错误:

Traceback (most recent call last):
File "C:\Users\pierr\python354\lib\site-packages\pandas\io\pytables.py", line 469, in __init__
import tables  # noqa
File "C:\Users\pierr\python354\lib\site-packages\tables\__init__.py", line 90, in <module>
from .utilsextension import (
ImportError: DLL load failed: The specified procedure could not be found.

...
 File "C:\Users\pierr\python354\lib\site-packages\pandas\io\pytables.py", line 472, in __init__
'importing'.format(ex=str(ex)))
ImportError: HDFStore requires PyTables, "DLL load failed: The specified procedure could not be found." problem importing

python 版本 3.5.4 | 表版本 3.4.2 |窗户 10

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。在我卸载并重新安装 pytables 后它就消失了。

conda remove -n MYENVNAME pytables
conda config --add channels conda-forge
conda install pytables

【讨论】:

【参考方案2】:

我遇到了类似的问题。当我尝试运行以下代码时:

import pandas as pd
df = pd.read_hdf('some.hdf')

我遇到了一个错误:

ImportError: Missing optional dependency 'tables'.  Use pip or conda to install tables.

即使pytables 模块是使用 conda 和 pip 安装的(最后当然是tables),错误仍然存​​在。 import tables 也不起作用:

from .utilsextension import (
ImportError: DLL load failed: Не найден указанный модуль.

"Не найден указанный модуль" 在俄语中的意思是"The specified module was not found"。 我爬入 Traceback 中最后一个模块所在的文件夹 - '~\AppData\Roaming\Python\Lib\site-packages\tables' 并在那里找到名为 utilsextension.cp37-win_amd64.pyd 的文件。然后我下载了Dependency Walker 实用程序并查看了这个文件。程序说找不到pytables_hdf5.dll。我在文件夹 ~\AppData\Roaming\Python\Lib\site-packages\tables\ 中找到了这个文件,并通过以下方式将其添加到 PATH 变量中:

os.environ['PATH'] += os.pathsep + os.path.expanduser('~\\AppData\\Roaming\\Python\\Lib\\site-packages\\tables')

之后一切正常,import tablespd.read_hdf 不再返回错误。 希望这对某人有用。

【讨论】:

依赖walker是不错的工具,但是当我使用它时(对于.utilsextension的ImportError的相同问题),它说它找不到几个文件,包括python37.dll和zlib.dll。我想它在某处缺少一些路径。【参考方案3】:

使用these installation instructions 安装 PyTables 帮助我解决了这个问题。我使用了 Conda 选项。

【讨论】:

以上是关于pytables 的 DLL 加载失败的主要内容,如果未能解决你的问题,请参考以下文章

PyTable 表拆分

PyTables:索引大型数组的多个维度

在 HDF5 (PyTables) 中存储 numpy 稀疏矩阵

Numpy 和 PyTables 的浮点异常

使用另一个 pandas DataFrame 更新存储在 Pytable 中的 pandas DataFrame

Python、PyTables、Java - 捆绑在一起