Unidata / netcdf4-python

netcdf4-python: python/numpy interface to the netCDF C library
http://unidata.github.io/netcdf4-python
MIT License
748 stars 261 forks source link

Hangs on data file read with no feedback #1139

Closed bernd-wechner closed 2 years ago

bernd-wechner commented 2 years ago

I'm using Python 3.8.3 and the netCDF4 1.5.7 on Windows 10.

I have no trouble loading netCDF4 files generally and exploring the contents.

Attempting to load netCDF4 files from a particular source however consistently and reliably causes the netCD4 package to hang.

It sits there indefinitely and I can see the Python process sitting on about 8% CPU with static memory use and no I/O.

I can provide a sample file if it helps but they aren't small (~23MB is the smallest one I have) and not public (I don't own the data) so would share it by some private channel of convenience if it helps.

I can explore these files satisfactorily with Panoply, and I can load them in other software (written in C++), but the python netCDF4 lib hangs. The files are written by a C++ app using the netCDF4 libs of course.

Expected behaviour: If there is a problem with the file contents report what it is.

Would be most appreciative of any help in identifying the cause of this.

jswhit commented 2 years ago

Can you open the file on other platforms and/or machines with netcdf4-python? Is it just an issue on this particular WIndows 10 machine, or Windows more generally? Can you dump the contents of the file with the ncdump utility?

bernd-wechner commented 2 years ago

Can you open the file on other platforms and/or machines with netcdf4-python? Is it just an issue on this particular WIndows 10 machine, or Windows more generally? Can you dump the contents of the file with the ncdump utility?

Very good questions. So off I trotted to try that out, and the news is good:

  1. ncdump works fine
  2. installing Python and netCDF4 (pip install netCDF4) on another Win 10 box, and it can read the file.

And while the news is good. The question remains, how can this be diagnosed and fixed.

I've tried uninstalling and reinstalling but it's a little messy:

PS C:\Users\berndw> pip uninstall netCDF4
Found existing installation: netCDF4 1.5.7
Uninstalling netCDF4-1.5.7:
  Would remove:
    c:\users\berndw\appdata\local\programs\python\python38-32\lib\site-packages\netcdf4-1.5.7.dist-info\*
    c:\users\berndw\appdata\local\programs\python\python38-32\lib\site-packages\netcdf4\*
    c:\users\berndw\appdata\local\programs\python\python38-32\scripts\nc3tonc4.exe
    c:\users\berndw\appdata\local\programs\python\python38-32\scripts\nc4tonc3.exe
    c:\users\berndw\appdata\local\programs\python\python38-32\scripts\ncinfo.exe
Proceed (Y/n)? y
  Successfully uninstalled netCDF4-1.5.7
PS C:\Users\berndw>
PS C:\Users\berndw> pip install netCDF4
Collecting netCDF4
  Using cached netCDF4-1.5.8.tar.gz (767 kB)
  Preparing metadata (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\berndw\appdata\local\programs\python\python38-32\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-4vy5gcqu\\netcdf4_c6da8cdbbaad4c55bd6db67a373f1ef3\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-4vy5gcqu\\netcdf4_c6da8cdbbaad4c55bd6db67a373f1ef3\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-51pzgx7z'
       cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-4vy5gcqu\netcdf4_c6da8cdbbaad4c55bd6db67a373f1ef3\
  Complete output (22 lines):
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-4vy5gcqu\netcdf4_c6da8cdbbaad4c55bd6db67a373f1ef3\setup.py", line 419, in <module>
      _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
    File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-4vy5gcqu\netcdf4_c6da8cdbbaad4c55bd6db67a373f1ef3\setup.py", line 360, in _populate_hdf5_info
      raise ValueError('did not find HDF5 headers')
  ValueError: did not find HDF5 headers
  reading from setup.cfg...

      HDF5_DIR environment variable not set, checking some standard locations ..
  checking C:\Users\berndw\include ...
  hdf5 headers not found in C:\Users\berndw\include
  checking /usr/local\include ...
  hdf5 headers not found in /usr/local\include
  checking /sw\include ...
  hdf5 headers not found in /sw\include
  checking /opt\include ...
  hdf5 headers not found in /opt\include
  checking /opt/local\include ...
  hdf5 headers not found in /opt/local\include
  checking /usr\include ...
  hdf5 headers not found in /usr\include
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e4/09/c7582134adb67b2ef136b954344d0522e9e3e1c7a292004eec0e8f8b1f0d/netCDF4-1.5.8.tar.gz#sha256=ca3d468f4812c0999df86e3f428851fb0c17ac34ce0827115c246b0b690e4e84 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Using cached netCDF4-1.5.7-cp38-cp38-win32.whl (2.6 MB)
Requirement already satisfied: cftime in c:\users\berndw\appdata\local\programs\python\python38-32\lib\site-packages (from netCDF4) (1.4.1)
Requirement already satisfied: numpy>=1.9 in c:\users\berndw\appdata\local\programs\python\python38-32\lib\site-packages (from netCDF4) (1.19.4)
Installing collected packages: netCDF4
Successfully installed netCDF4-1.5.7

I'll try a clean venv next. Never done that on Windows.

bernd-wechner commented 2 years ago

OK, in a fresh venv:

(ev) PS C:\Users\berndw> pip install netCDF4 --no-color
Collecting netCDF4
  Using cached netCDF4-1.5.8.tar.gz (767 kB)
  Preparing metadata (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: 'c:\users\berndw\ev\scripts\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-0k2czru6\\netcdf4_ca9f936b6788493eb59c44b45ad7450e\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-0k2czru6\\netcdf4_ca9f936b6788493eb59c44b45ad7450e\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-re6decbf'
       cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-0k2czru6\netcdf4_ca9f936b6788493eb59c44b45ad7450e\
  Complete output (22 lines):
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-0k2czru6\netcdf4_ca9f936b6788493eb59c44b45ad7450e\setup.py", line 419, in <module>
      _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
    File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-0k2czru6\netcdf4_ca9f936b6788493eb59c44b45ad7450e\setup.py", line 360, in _populate_hdf5_info
      raise ValueError('did not find HDF5 headers')
  ValueError: did not find HDF5 headers
  reading from setup.cfg...

      HDF5_DIR environment variable not set, checking some standard locations ..
  checking C:\Users\berndw\include ...
  hdf5 headers not found in C:\Users\berndw\include
  checking /usr/local\include ...
  hdf5 headers not found in /usr/local\include
  checking /sw\include ...
  hdf5 headers not found in /sw\include
  checking /opt\include ...
  hdf5 headers not found in /opt\include
  checking /opt/local\include ...
  hdf5 headers not found in /opt/local\include
  checking /usr\include ...
  hdf5 headers not found in /usr\include
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e4/09/c7582134adb67b2ef136b954344d0522e9e3e1c7a292004eec0e8f8b1f0d/netCDF4-1.5.8.tar.gz#sha256=ca3d468f4812c0999df86e3f428851fb0c17ac34ce0827115c246b0b690e4e84 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Using cached netCDF4-1.5.7-cp38-cp38-win32.whl (2.6 MB)
Collecting numpy>=1.9
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl
  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl
  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl
  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl
  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl
ERROR: Could not install packages due to an OSError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/7d/af/13115250d40df44624a40ac3dc86a93d6b24481f45ff242407041a9e69a4/numpy-1.21.4-cp38-cp38-win32.whl (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)')))

Alas the venv didn't work:

Microsoft Windows [Version 10.0.19043.1288]
(c) Microsoft Corporation. All rights reserved.
C:\Users\berndw>python -m venv ev

C:\Users\berndw>cd ev

C:\Users\berndw\ev>Scripts\activate

Then I try it and still hangs:

> python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import netCDF4
>>> root=netCDF4.Dataset(r"myfile.nc")

Alas. The failure of the Preparing metadata (setup.py) step on install is maybe related?

bernd-wechner commented 2 years ago

Wow, I'm having the most interesting time here (not). I remove all traces of Python I could find form my machine. I rebooted. And checked and could not find any python binaries or libs on it that aren't part of other software apps. Pretty clean. I installed it freshly from python.org.

Then:

PS C:\Users\berndw> pip install netCDF4
Collecting netCDF4
  Using cached netCDF4-1.5.8.tar.gz (767 kB)
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_c5a76e8788a940b989e72e125ef4febf\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_c5a76e8788a940b989e72e125ef4febf\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-vxjlk1_0'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c5a76e8788a940b989e72e125ef4febf\
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c5a76e8788a940b989e72e125ef4febf\setup.py", line 419, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c5a76e8788a940b989e72e125ef4febf\setup.py", line 360, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw\include ...
    hdf5 headers not found in C:\Users\berndw\include
    checking /usr/local\include ...
    hdf5 headers not found in /usr/local\include
    checking /sw\include ...
    hdf5 headers not found in /sw\include
    checking /opt\include ...
    hdf5 headers not found in /opt\include
    checking /opt/local\include ...
    hdf5 headers not found in /opt/local\include
    checking /usr\include ...
    hdf5 headers not found in /usr\include
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/e4/09/c7582134adb67b2ef136b954344d0522e9e3e1c7a292004eec0e8f8b1f0d/netCDF4-1.5.8.tar.gz#sha256=ca3d468f4812c0999df86e3f428851fb0c17ac34ce0827115c246b0b690e4e84 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.7.tar.gz (763 kB)
     |████████████████████████████████| 763 kB 2.2 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_aec945fc130e4ba0bbd89eab6c4fbc5c\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_aec945fc130e4ba0bbd89eab6c4fbc5c\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-igljhj21'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_aec945fc130e4ba0bbd89eab6c4fbc5c\
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_aec945fc130e4ba0bbd89eab6c4fbc5c\setup.py", line 419, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_aec945fc130e4ba0bbd89eab6c4fbc5c\setup.py", line 360, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw\include ...
    hdf5 headers not found in C:\Users\berndw\include
    checking /usr/local\include ...
    hdf5 headers not found in /usr/local\include
    checking /sw\include ...
    hdf5 headers not found in /sw\include
    checking /opt\include ...
    hdf5 headers not found in /opt\include
    checking /opt/local\include ...
    hdf5 headers not found in /opt/local\include
    checking /usr\include ...
    hdf5 headers not found in /usr\include
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/df/e7/0eb5a6788502f0a1843f6b45a273c786a52d80c88003ce3d135a8c6da1bf/netCDF4-1.5.7.tar.gz#sha256=d145f9c12da29da3922d8b8aafea2a2a89501bcb28a219a46b7b828b57191594 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.6.tar.gz (763 kB)
     |████████████████████████████████| 763 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_f85217f5695f4bd6bcc3f30fcac91b99\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_f85217f5695f4bd6bcc3f30fcac91b99\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-rtjml1vp'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_f85217f5695f4bd6bcc3f30fcac91b99\
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_f85217f5695f4bd6bcc3f30fcac91b99\setup.py", line 425, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_f85217f5695f4bd6bcc3f30fcac91b99\setup.py", line 366, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw\include ...
    hdf5 headers not found in C:\Users\berndw\include
    checking /usr/local\include ...
    hdf5 headers not found in /usr/local\include
    checking /sw\include ...
    hdf5 headers not found in /sw\include
    checking /opt\include ...
    hdf5 headers not found in /opt\include
    checking /opt/local\include ...
    hdf5 headers not found in /opt/local\include
    checking /usr\include ...
    hdf5 headers not found in /usr\include
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/79/0d/caa957cc1b42b718ce4b9b3e849e6f7aa99faad2d522d8f2d7a33500fba0/netCDF4-1.5.6.tar.gz#sha256=7577f4656af8431b2fa6b6797acb45f81fa1890120e9123b3645e14765da5a7c (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.5.1.tar.gz (793 kB)
     |████████████████████████████████| 793 kB 3.3 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_904429b4755749118554b70c440c0e3e\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_904429b4755749118554b70c440c0e3e\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-cnqglkwf'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_904429b4755749118554b70c440c0e3e\
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_904429b4755749118554b70c440c0e3e\setup.py", line 411, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_904429b4755749118554b70c440c0e3e\setup.py", line 356, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw\include ...
    hdf5 headers not found in C:\Users\berndw\include
    checking /usr/local\include ...
    hdf5 headers not found in /usr/local\include
    checking /sw\include ...
    hdf5 headers not found in /sw\include
    checking /opt\include ...
    hdf5 headers not found in /opt\include
    checking /opt/local\include ...
    hdf5 headers not found in /opt/local\include
    checking /usr\include ...
    hdf5 headers not found in /usr\include
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/9f/e2/686d0d937f979e7ee0eb6bb4821448da6d2910789f4928c12b070f424b6a/netCDF4-1.5.5.1.tar.gz#sha256=d957e55a667d1fc651ddef22fea10ded0f142b7d9dbbf4d08c0012d32f445abd (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.5.tar.gz (793 kB)
     |████████████████████████████████| 793 kB 6.8 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_cb28677e405747cea8ca519aeb79f782\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_cb28677e405747cea8ca519aeb79f782\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-gfqsko47'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cb28677e405747cea8ca519aeb79f782\
    Complete output (22 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cb28677e405747cea8ca519aeb79f782\setup.py", line 411, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cb28677e405747cea8ca519aeb79f782\setup.py", line 356, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw\include ...
    hdf5 headers not found in C:\Users\berndw\include
    checking /usr/local\include ...
    hdf5 headers not found in /usr/local\include
    checking /sw\include ...
    hdf5 headers not found in /sw\include
    checking /opt\include ...
    hdf5 headers not found in /opt\include
    checking /opt/local\include ...
    hdf5 headers not found in /opt/local\include
    checking /usr\include ...
    hdf5 headers not found in /usr\include
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/40/61/a4d890923385d7413203c0e431532b167fd46e952c9f4f91a03f4242c2bc/netCDF4-1.5.5.tar.gz#sha256=910b0c9d1ca7bef9c5796c45e2f5f30b91df70997ac655c51a58073eff2634f9 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.4.tar.gz (793 kB)
     |████████████████████████████████| 793 kB 6.8 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_c6a25280af89458b82669eb4b96cf158\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_c6a25280af89458b82669eb4b96cf158\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-rvmyi4_5'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c6a25280af89458b82669eb4b96cf158\
    Complete output (16 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c6a25280af89458b82669eb4b96cf158\setup.py", line 397, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_c6a25280af89458b82669eb4b96cf158\setup.py", line 345, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/c5/41/8520eb2755c2f310e2f21760079539a9aa881188005fca35c79006afd843/netCDF4-1.5.4.tar.gz#sha256=941de6f3623b6474ecb4d043be5990690f7af4cf0d593b31be912627fe5aad03 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.3.tar.gz (790 kB)
     |████████████████████████████████| 790 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_99cccbb988b84a0f8a5a4e1a06748290\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_99cccbb988b84a0f8a5a4e1a06748290\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-e2n7gnr9'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_99cccbb988b84a0f8a5a4e1a06748290\
    Complete output (16 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_99cccbb988b84a0f8a5a4e1a06748290\setup.py", line 397, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_99cccbb988b84a0f8a5a4e1a06748290\setup.py", line 345, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/cd/ee/b7734f8fb94c9671b6966f158903cd3b67cb60d245c6f2196bcf1f8b13b5/netCDF4-1.5.3.tar.gz#sha256=2a3ca855848f4bbf07fac366da77a681fcead18c0a8813d91d46302f562dc3be (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.2.tar.gz (801 kB)
     |████████████████████████████████| 801 kB 3.3 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_168c95a09c8b4ad987a19cbb1f991e2c\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_168c95a09c8b4ad987a19cbb1f991e2c\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-lpa9v8s6'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_168c95a09c8b4ad987a19cbb1f991e2c\
    Complete output (16 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_168c95a09c8b4ad987a19cbb1f991e2c\setup.py", line 397, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_168c95a09c8b4ad987a19cbb1f991e2c\setup.py", line 345, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/64/2e/abc0bce095ab5a3b8374f052ace2509a031fd7633b23917e557487067225/netCDF4-1.5.2.tar.gz#sha256=e075e1937ae5b297292c22adb72d7fdf557ba7509e6fd967fec133f1be178922 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.1.2.tar.gz (808 kB)
     |████████████████████████████████| 808 kB 6.8 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_196d9621796148b5878c80f4d314a189\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_196d9621796148b5878c80f4d314a189\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-e6ywm2l7'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_196d9621796148b5878c80f4d314a189\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_196d9621796148b5878c80f4d314a189\setup.py:185: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_196d9621796148b5878c80f4d314a189\setup.py", line 386, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_196d9621796148b5878c80f4d314a189\setup.py", line 334, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/01/ae/b4cf8ec4fe543b99be502461f2fd620557a002b2e80043eab86f95040f1b/netCDF4-1.5.1.2.tar.gz#sha256=f34b3152d089d59b1dee29189c5df0c8ec6f18f2f49a6b6903d226d6cfc23798 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.1.1.tar.gz (808 kB)
     |████████████████████████████████| 808 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_85030864541746129e925a2005734bed\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_85030864541746129e925a2005734bed\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-fy2cfju2'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_85030864541746129e925a2005734bed\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_85030864541746129e925a2005734bed\setup.py:185: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_85030864541746129e925a2005734bed\setup.py", line 386, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_85030864541746129e925a2005734bed\setup.py", line 334, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/79/6f/6a0ec2e741a9064a55f865947f0e11762ff15b8d513f8011ff313dcaaca3/netCDF4-1.5.1.1.tar.gz#sha256=5bb39f3ed1ae0cd69e64a1e585529291557629194c54356b0756e77537705738 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.1.tar.gz (807 kB)
     |████████████████████████████████| 807 kB 3.2 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_987edd79cebb4ecab37c060fcf13f409\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_987edd79cebb4ecab37c060fcf13f409\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-5r2l65cl'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_987edd79cebb4ecab37c060fcf13f409\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_987edd79cebb4ecab37c060fcf13f409\setup.py:185: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_987edd79cebb4ecab37c060fcf13f409\setup.py", line 386, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_987edd79cebb4ecab37c060fcf13f409\setup.py", line 334, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/12/d7/25269eb8c55409abbbfd1d1e2dacf4711c5cb15d8fc6d95a04a73ad1089c/netCDF4-1.5.1.tar.gz#sha256=ba614bd1325f7f2287cd5504b63a46c1b011130443f74f1e3d33abb5ec9d8599 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.0.1.tar.gz (776 kB)
     |████████████████████████████████| 776 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_cae7a8937fef4c0cb646553150567f2d\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_cae7a8937fef4c0cb646553150567f2d\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-c_r29lxf'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cae7a8937fef4c0cb646553150567f2d\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cae7a8937fef4c0cb646553150567f2d\setup.py:185: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cae7a8937fef4c0cb646553150567f2d\setup.py", line 386, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_cae7a8937fef4c0cb646553150567f2d\setup.py", line 334, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/0b/67/f1b160622cfb223aaf85eb481cddada899675b6bc81c1771c912a33ed9de/netCDF4-1.5.0.1.tar.gz#sha256=db24f7ca724e791574774b2a1e323ce0dfb544957fc6fbdb5d4c368f382b2de9 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.5.0.tar.gz (765 kB)
     |████████████████████████████████| 765 kB 3.3 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_edb98f9a672e4db093fb967765877e31\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_edb98f9a672e4db093fb967765877e31\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-mynwy3qf'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_edb98f9a672e4db093fb967765877e31\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_edb98f9a672e4db093fb967765877e31\setup.py:185: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_edb98f9a672e4db093fb967765877e31\setup.py", line 386, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_edb98f9a672e4db093fb967765877e31\setup.py", line 334, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/b5/45/3dd855840a6374a3bacf1129e612d8608d4dc7087ac5c9db233bc0622ad2/netCDF4-1.5.0.tar.gz#sha256=c258d1104f5fe0f110f4a140b0c84ebf32c2cc5803f186ee72fa93a4a464c0d9 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.3.2.tar.gz (766 kB)
     |████████████████████████████████| 766 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_e3d409ea79ea402ea539cf5178e324fd\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_e3d409ea79ea402ea539cf5178e324fd\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-xd2230kf'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_e3d409ea79ea402ea539cf5178e324fd\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_e3d409ea79ea402ea539cf5178e324fd\setup.py:180: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_e3d409ea79ea402ea539cf5178e324fd\setup.py", line 381, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_e3d409ea79ea402ea539cf5178e324fd\setup.py", line 329, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/6b/c2/264ceea72738fdd51b32d772f5ef35cbde7f6d7eeb50edae28f751f68711/netCDF4-1.4.3.2.tar.gz#sha256=5ae0ea8658a83c4c62a76af5a764aad3b4608d7376f07deb143d00817901da9a (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.3.1.tar.gz (766 kB)
     |████████████████████████████████| 766 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-yzf2ig9h'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\setup.py:180: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\setup.py", line 381, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_9f33e1b8d50345be9020c3b4ee42d7b9\setup.py", line 329, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/c2/4c/0fca4ee749e5fffe20fd8a98c996dc87a325a564ae591d5eb8ee534721a3/netCDF4-1.4.3.1.tar.gz#sha256=7c76a614d6f827c01f7d688d799d26d0a7ceff80467ce52e2c24d895cc78b196 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.3.tar.gz (775 kB)
     |████████████████████████████████| 775 kB 6.8 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_fcae3e9e2992426da5e238bab3a0d310\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_fcae3e9e2992426da5e238bab3a0d310\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-znqwmglh'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_fcae3e9e2992426da5e238bab3a0d310\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_fcae3e9e2992426da5e238bab3a0d310\setup.py:180: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_fcae3e9e2992426da5e238bab3a0d310\setup.py", line 381, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_fcae3e9e2992426da5e238bab3a0d310\setup.py", line 329, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/81/18/a3ff61e22a458f15fd3e82d99e4624a86c253fce2478ca4aaef61effa434/netCDF4-1.4.3.tar.gz#sha256=2e7d8713286598fc89a3f922797522bfb70f132168b8a6a082f670e104a18793 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.2.tar.gz (769 kB)
     |████████████████████████████████| 769 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-cygzbtxi'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\setup.py:170: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\setup.py", line 371, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\setup.py", line 319, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/eb/aa/b067f3b1a2561f29f5c282d8a0f0f4bba5b13e9bdaa5fcd29005d226c448/netCDF4-1.4.2.tar.gz#sha256=b934af350459cf9041bcdf5472e2aa56ed7321c018d918e9f325ec9a1f9d1a30 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.1.tar.gz (759 kB)
     |████████████████████████████████| 759 kB 6.4 MB/s
    ERROR: Command errored out with exit status 1:
     command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_084358359c1a479abe6fb248a6df707a\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_084358359c1a479abe6fb248a6df707a\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-ct8rwg4u'
         cwd: C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_084358359c1a479abe6fb248a6df707a\
    Complete output (18 lines):
    C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_084358359c1a479abe6fb248a6df707a\setup.py:170: DeprecationWarning: The SafeConfigParser class has been renamed to ConfigParser in Python 3.2. This alias will be removed in future versions. Use ConfigParser directly instead.
      config = configparser.SafeConfigParser()
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_084358359c1a479abe6fb248a6df707a\setup.py", line 371, in <module>
        _populate_hdf5_info(dirstosearch, inc_dirs, libs, lib_dirs)
      File "C:\Users\berndw\AppData\Local\Temp\1\pip-install-ejf3occu\netcdf4_084358359c1a479abe6fb248a6df707a\setup.py", line 319, in _populate_hdf5_info
        raise ValueError('did not find HDF5 headers')
    ValueError: did not find HDF5 headers
    reading from setup.cfg...

        HDF5_DIR environment variable not set, checking some standard locations ..
    checking C:\Users\berndw ...
    checking /usr/local ...
    checking /sw ...
    checking /opt ...
    checking /opt/local ...
    checking /usr ...
    ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/d9/c0/653b79fcea4efc9a79ce3ae95a31c1669f312ab0c53b3d45037c4e419c2e/netCDF4-1.4.1.tar.gz#sha256=d4fc65b98e348c39d082ab6b4b7f6d636b1b4e63bec016e5bca189fee5d46403 (from https://pypi.org/simple/netcdf4/). Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  Downloading netCDF4-1.4.0.tar.gz (757 kB)
     |████████████████████████████████| 757 kB 3.3 MB/s
ERROR: Operation cancelled by user
WARNING: You are using pip version 21.2.3; however, version 21.3.1 is available.
You should consider upgrading via the 'E:\Python\python.exe -m pip install --upgrade pip' command.

I had to break that it wa sjust in an endles sloop it seems of trying:

 command: 'E:\Python\python.exe' -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\\setup.py'"'"'; __file__='"'"'C:\\Users\\berndw\\AppData\\Local\\Temp\\1\\pip-install-ejf3occu\\netcdf4_36f7de72c42f4c6a8a529fa411f02a57\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\berndw\AppData\Local\Temp\1\pip-pip-egg-info-cygzbtxi'

Most puzzling.

bernd-wechner commented 2 years ago

Now some progress. By ensuring I have these two environment variables set:

$ENV:HDF5_DIR="C:\Program Files\HDF_Group\HDF5\1.12.0"
$ENV:NETCDF4_DIR="C:\Program Files\netCDF 4.8.0"

in my Powershell profile C:\Users\berndw\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

and ensuring wheel was installed (pip install wheel).

in my profile I found find I can install netCDF4 but it doesn't work once installed:

> pip install netCDF4
Collecting netCDF4
  Using cached netCDF4-1.5.8.tar.gz (767 kB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy>=1.9 in e:\python\lib\site-packages (from netCDF4) (1.21.4)
Requirement already satisfied: cftime in e:\python\lib\site-packages (from netCDF4) (1.5.1.1)
Building wheels for collected packages: netCDF4
  Building wheel for netCDF4 (setup.py) ... done
  Created wheel for netCDF4: filename=netCDF4-1.5.8-cp310-cp310-win_amd64.whl size=363806 sha256=d1589e57b0e98da10911f4253b3667c003cc6458fec6302655171952ccd89db0
  Stored in directory: c:\users\berndw\appdata\local\pip\cache\wheels\b3\69\5b\df1c6529dd81de1e2c97cec68e23cb6bc89dcb103966dc2ee4
Successfully built netCDF4
Installing collected packages: netCDF4
Successfully installed netCDF4-1.5.8
PS C:\Users\berndw> python
Python 3.10.0 (tags/v3.10.0:b494f59, Oct  4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import netCDF4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\Python\lib\site-packages\netCDF4\__init__.py", line 3, in <module>
    from ._netCDF4 import *
ImportError: DLL load failed while importing _netCDF4: The specified module could not be found.

This is not an easy road to tread it seems.

jswhit commented 2 years ago

My bad - I had forgotten to upload windows wheels for the 1.5.8 release. They are there on pypi now, please try again.

bernd-wechner commented 2 years ago

That worked! And it all works now. I can read those files that were causing a hang.

I have no idea what lay behind it only that:

  1. ncdump worked
  2. netCDF.Dataset(file) worked on another machine
  3. netCDF.Dataset(file) hung on a specific files on this machine (only some from a particular source)
  4. After cleaning this machine, removing all traces of python and netCDF4 and reinstalling that hang has disappeared.

So we have no insight into the cause alas, but we have the issue fixed and I ma productive once more on my desktop.

I do wish I understood Using cached netCDF4-1.5.8.tar.gz and why it happens and seems to want to do a build that needs HDF5_DIR and NETCDF4_DIR defined to find include files. That of course did not happen this morning:

PS C:\Users\berndw> pip uninstall netCDF4
Found existing installation: netCDF4 1.5.8
Uninstalling netCDF4-1.5.8:
  Would remove:
    e:\python\lib\site-packages\netcdf4-1.5.8.dist-info\*
    e:\python\lib\site-packages\netcdf4\*
    e:\python\scripts\nc3tonc4.exe
    e:\python\scripts\nc4tonc3.exe
    e:\python\scripts\ncinfo.exe
Proceed (Y/n)? y
  Successfully uninstalled netCDF4-1.5.8
PS C:\Users\berndw> pip install netCDF4
Collecting netCDF4
  Downloading netCDF4-1.5.8-cp310-cp310-win_amd64.whl (3.0 MB)
     |████████████████████████████████| 3.0 MB 204 kB/s
Requirement already satisfied: cftime in e:\python\lib\site-packages (from netCDF4) (1.5.1.1)
Requirement already satisfied: numpy>=1.9 in e:\python\lib\site-packages (from netCDF4) (1.21.4)
Installing collected packages: netCDF4
Successfully installed netCDF4-1.5.8
PS C:\Users\berndw> python
Python 3.10.0 (tags/v3.10.0:b494f59, Oct  4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import netCDF4
>>> root=netCDF4.Dataset(r"S:\! QA\Testing Files\File format tests\Furuno\FSV-25 netCDF\Data Files\FSV30R Exports\1 Netcdf_export_V_mode_TVG.nc")
>>> root
<class 'netCDF4._netCDF4.Dataset'>
root group (NETCDF4 data model, file format HDF5):
    Conventions: CF-1.7, SONAR-netCDF4-1.0, ACDD-1.3
    date_created: 2021-11-08T11:06:13.081+10:00
    keywords: omnisonar
    license: []
    rights: []
    sonar_convention_authority: ICES
    sonar_convention_name: SONAR-netCDF4
    sonar_convention_version: 1.0
    summary: []
    title: File generated by an Echoview export
    dimensions(sizes):
    variables(dimensions):
    groups: Sonar, Environment, Platform, Provenance
>>>

At a guess it's because pip finds netCDF4-1.5.8-cp310-cp310-win_amd64.whl and this does not need a build (is prebuilt) and without finding it ti falls back on netCDF4-1.5.8.tar.gz which is a source archive and it tries to build. What puzzles me is why it claims to find that in cache, as I ran a full disk search for netCDF4-1.5.8.tar.gz overnight, on the filesytem and file contents a could not find any reference to it. Of course pip may keep a compressed cache in which filenames are also compressed not visible to such a search. But I am left wondering where pip would do that as I saw that even on a post nuke clean install.

jswhit commented 2 years ago

pip install falls back on building from source if the binary wheel is not available on pypi (and in your case fails because the HDF5 and NETCDF libs and headers are not found). Don't know why 1.5.7 failed on your machine with that particular file, but I'm glad updating to 1.5.8 fixes it.