我刚在Windows 10上安装了"vanilla" python,并试图安装netCDF4,却发现它给出了一个错误,说:"值错误:找不到HDF5标头"
这是Python 3.7,版本如下:
py -m pip list
Package Version
------------------ -------
attrs 19.1.0
backcall 0.1.0
bleach 3.1.0
bokeh 1.3.4
colorama 0.4.1
cycler 0.10.0
Cython 0.29.13
decorator 4.4.0
defusedxml 0.6.0
entrypoints 0.3
h5py 2.9.0
ipykernel 5.1.2
ipython 7.8.0
ipython-genutils 0.2.0
ipywidgets 7.5.1
jedi 0.15.1
Jinja2 2.10.1
jsonschema 3.0.2
jupyter 1.0.0
jupyter-client 5.3.1
jupyter-console 6.0.0
jupyter-core 4.5.0
kiwisolver 1.1.0
MarkupSafe 1.1.1
matplotlib 3.1.1
mistune 0.8.4
nbconvert 5.6.0
nbformat 4.4.0
notebook 6.0.1
numpy 1.17.1
packaging 19.1
pandas 0.25.1
pandocfilters 1.4.2
parso 0.5.1
pickleshare 0.7.5
Pillow 6.1.0
pip 19.2.3
pip-review 1.0
pivottablejs 0.9.0
prometheus-client 0.7.1
prompt-toolkit 2.0.9
Pygments 2.4.2
pyparsing 2.4.2
pypl 40.10
pyrsistent 0.15.4
python-dateutil 2.8.0
pytz 2019.2
pywinpty 0.5.5
PyYAML 5.1.2
pyzmq 18.1.0
qtconsole 4.5.5
scipy 1.3.1
seaborn 0.9.0
Send2Trash 1.5.0
setuptools 41.2.0
six 1.12.0
svgwrite 1.3.1
terminado 0.8.2
testpath 0.4.2
tornado 6.0.3
traitlets 4.3.2
virtualenv 16.7.5
wcwidth 0.1.7
webencodings 0.5.1
widgetsnbextension 3.5.1
xarray 0.12.3
当我尝试用pip安装netCDF时,它给出了一个错误,整个错误信息是:
>py -m pip install netCDF4
Collecting netCDF4
Using cached
https://files.pythonhosted.org/packages/64/2e/abc0bce095ab5a3b8374f052ace2509a031fd7633b23917e557487067225/netCDF4-1.5.2.tar.gz
ERROR: Command errored out with exit status 1:
command: 'c:\python37-32\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\***\\AppData\\Local\\Temp\\pip-install-374v_ecc\\netCDF4\\setup.py'"'"'; __file__='"'"'C:\\Users\\***\\AppData\\Local\\Temp\\pip-install-374v_ecc\\netCDF4\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
cwd: C:\Users\***\AppData\Local\Temp\pip-install-374v_ecc\netCDF4\
Complete output (16 lines):
reading from setup.cfg...
HDF5_DIR environment variable not set, checking some standard locations ..
checking C:\Users\***...
checking /usr/local ...
checking /sw ...
checking /opt ...
checking /opt/local ...
checking /usr ...
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\***\AppData\Local\Temp\pip-install-374v_ecc\netCDF4\setup.py", line 397, in <module>
_populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
File "C:\Users\***\AppData\Local\Temp\pip-install-374v_ecc\netCDF4\setup.py", line 345, in _populate_hdf5_info
raise ValueError('did not find HDF5 headers')
ValueError: did not find HDF5 headers
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
请告诉我该怎么做或者你需要什么信息。谢谢。
2条答案
按热度按时间kb5ga3dv1#
我自己解决了这个问题。我需要手动安装C++编译器,因为它不包括在香草Python包中(当然)。
我从下面的网站下载并安装了“Visual Studio构建工具”:https://visualstudio.microsoft.com/downloads/,这就解决了问题。
gr8qqesn2#
今天下午我刚刚遇到了和OP几乎完全一样的问题,花了一个小时把头撞在墙上。
我的故事:
1.我使用的是Python 3.11.1
1.找到了这个帖子。我和OP似乎有同样的问题
1.我考虑为VisualStudio安装构建工具,但注意到它将是~5 GB ...
1.决定进一步调查
1.发现此GitHub问题,表明这是3.11.1的h5py轮的问题
1.使用Python 3.8.3在另一台计算机上安装netCDF4,没有任何问题
1.我将使用Python〈= 3.10,直到对h5py wheel进行排序
那么C编译器是OP问题的真正解决方案吗?我检查了一下,结果发现,在2019年9月,another issue open for wheels没有为h5py做好正确的准备,在OP第一次发布的时候,h5py就关闭了。时间线上似乎有约23小时的间隙(我想我已经正确地解释了时区)。也许C编译器能够解决由故障轮子引起的问题?