由于 hdf5 错误,无法安装库。

6

我尝试通过命令 pip install tables 安装 Python 库 tables,但是出现了错误。

Collecting tables Using cached https://files.pythonhosted.org/packages/4d/53/8f34ce887c2a2ad80518980419a5f6f41defc85a287a355987e559ce9385/tables-3.4.4.tar.gz
Complete output from command python setup.py egg_info:
H5closeplbq5iz8.c
C:\Users\tkim1\AppData\Local\Temp\H5closeplbq5iz8.c(2): warning C4013: 'H5close' undefined; assuming extern returning int
LINK : fatal error LNK1181: cannot open input file 'hdf5.lib'
* Using Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]
* USE_PKGCONFIG: False
.. ERROR:: Could not find a local HDF5 installation.
   You may need to explicitly state where your local HDF5 headers and
   library can be found by setting the ``HDF5_DIR`` environment
   variable or by using the ``--hdf5`` command-line option.

这个HDF5未被找到的问题似乎很常见:https://github.com/PyTables/PyTables/issues/219https://github.com/PyTables/PyTables/issues/385。但作为一个编程新手,我很难跟上讨论的步伐。 在尝试解决这个问题时,最令人困惑的事情之一是,许多正在讨论的终端代码并不能被我的终端接受。
sudo python setup.py build_ext --inplace --hdf5=/opt/local --lzo=/opt/local --bzip2==opt/local

output: 'sudo' is not recognized as an internal or external command,operable program or batch file.


env HDF5_DIR=$PWD pip install tables

output:'env' is not recognized as an internal or external command,operable program or batch file.

任何关于解决安装问题或如何应用这些不同的终端命令的帮助都将不胜感激。谢谢大家。

你使用的是哪个操作系统? - Arka Mallick
嗨,Haramoz。我正在我的Windows 10上安装它。 - PaperRockBazooka
4
如果您使用的是Python 3.6而不是3.7,由于Pytables已经为Python<3.7预编译,所以您将不会遇到这些问题。或者,可以从此处下载预编译的wheel文件(确保下载与您Python版本匹配的wheel文件),并从本地wheel文件安装Pytables:pip install C:\path\to\wheel - hoefling
嘿@hoefling。那个有效了!非常感谢你。 - PaperRockBazooka
1
@hoefling,您几乎减轻了我99.999%的压力。非常感谢您。如果我是您,我会使用您的评论回答此问题,因为它似乎绝对有效! - Seth
2个回答

8

我发现了一种适用于Windows 10,使用Visual Studio 2019 Community和Python 3.9.1的解决方案。

  1. Download HDF5 and install.
  2. Set two environment variables, change the version if necessary.
    HDF5_DIR=C:\Program Files\HDF_Group\HDF5\1.12.0
    LIB=C:\Program Files\HDF_Group\HDF5\1.12.0\lib
    

HDF5_DIR与HDF5的README不同,它告诉您将其设置为C:\Program Files\HDF_Group\HDF5\1.12.0\cmake以使用Cmake,但它与pyTables setup.py不兼容。

LIB环境变量告诉link.exe在哪里找到hdf5.lib,如果未设置此变量,则会显示链接错误,提示无法在系统中找到hdf5.lib

设置这两个环境变量后,可以通过pip install tables安装pyTables。

您可以在powershell中通过$env:HDF5_DIR$env:LIB来验证这些设置。


这对我起作用了,使用的是 Windows 10、VS 2019 Community 和 Python 3.9.7。必须设置两个环境变量才能使安装工作。我有点不舒服,因为一个环境变量如此泛泛而谈,它被称为“LIB”,所以既然我的 pip install tables 成功完成,我现在要将其删除。 - JoseOrtiz3

0

此重複問題所示,如果可以使用 conda 的話,在 Windows 環境中運行conda install pytables可能會解決這個問題(在 Windows 10、Python 3.9、tables 3.6.1 上測試過)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接