Unidata/netcdf4-python — pull request #257 by evertrol (2014-05-13 13:43:15+00:00)
Title: Allow setup.py/pip to run query commands without needing numpy.

pip downloads and queries packages first, before trying to build them. In a clean environment, numpy is missing and any query therefore fails, though the build could actually proceed (provided numpy is built and installed first).
A conditional import depending on the setup command used can prevent pip from failing on the installation.

In particular, this can be an issue when [tox](https://testrun.org/tox/latest/) is used for automated testing: tox sets up a virtualenv without numpy, uses pip to download and query netCDF4 (`python setup.py egg_info`) and then fails during that inquiry since numpy is required, even if numpy is listed first in `tox.ini` and will be installed before netCDF4.

Note: the current solution still poses problems when running `python setup.py` manually and using an invalid command: instead of letting distutils/setuptools point out the invalid command to the user, an `ImportError` is raised for a missing numpy.