简体   繁体   中英

PyTables/HDF5 KERNEL32.dll error

I have recently installed HDF5 1.8.9 and PyTables 2.4.0 on Windows XP using Python 2.7.2 with the following installed from binaries from PyPI (when available) or http://www.lfd.uci.edu/~gohlke/pythonlibs/ (when not)

  • Numpy 1.6.1 superpack
  • numexpr 1.4.2
  • Cython 0.17.3
  • scipy 0.10.0rc1 superpack
  • matplotlib 1.1.1

When I import tables, the module imports, but produces the following error

"The procedure Entry point InitOnceExecuteOnce could not be located in the dynamic link library KERNEL32.dll."

MSDN.com says that this function is only available on Windows Vista and later. I know the latest HDF5 binaries (2.8.10) were built in Windows 7, and according to hdfgroup.org, getting them to work in Windows XP requires building them from source, but the binaries for version 2.8.9 are supposed to work for XP. Also, all of PyTables' dependencies import without issue so it appears that the issue is with the HDF5 libraries. How do I fix this without building the HDF5 libraries from source?

The answer is in your question. InitOnceExecuteOnce doesn't exist in Windows XP, so the documentation stating it works in your HDF5 version must be wrong. You will need to use older versions of HDF5, or, as you already figured out, rebuild HDF5 from source on XP.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM