conda-forge / netcdf4-feedstock

A conda-smithy repository for netcdf4.
BSD 3-Clause "New" or "Revised" License
3 stars 25 forks source link

PyPy builds installing non-functional version of netcdf4 #108

Closed dwhswenson closed 3 years ago

dwhswenson commented 3 years ago

Issue: Conda can pull in a version of netCDF4 that doesn't seem to be built for PyPy.

For context, I came across this in https://github.com/conda-forge/openpathsampling-feedstock/pull/5, but I was able to reproduce this issue locally with the following:

conda create -n netcdf-pypy pypy netcdf4=1.5.3
conda activate netcdf-pypy
python -c "import netCDF4"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/dwhs/miniconda3/envs/netcdf-pypy/site-packages/netCDF4/__init__.py", line 3, in <module>
    from ._netCDF4 import *
ModuleNotFoundError: No module named 'netCDF4._netCDF4'

Locally, conda defaulted to pulling in the newer version (1.5.4) which does not show this issue. But for whatever reason, the OpenPathSampling migration build pulled in 1.5.3. I know can always pin netcdf4!=1.5.3 in my recipe, but can this be fixed upstream?


Environment (conda list):

See also https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=237502 ``` $ conda list # packages in environment at /Users/dwhs/miniconda3/envs/netcdf-pypy: # # Name Version Build Channel bzip2 1.0.8 haf1e3a3_3 conda-forge c-ares 1.16.1 haf1e3a3_3 conda-forge ca-certificates 2020.6.20 hecda079_0 conda-forge certifi 2020.6.20 py36he57f5f5_2 conda-forge cftime 1.2.1 py36h05cdcba_1 conda-forge curl 7.71.1 hcb81553_8 conda-forge expat 2.2.9 hb1e8313_2 conda-forge gdbm 1.18 h8a0c380_2 conda-forge hdf4 4.2.13 h84186c3_1003 conda-forge hdf5 1.10.5 nompi_h2ccf146_1110 conda-forge jpeg 9d hbcb3906_0 conda-forge krb5 1.17.1 h75d18d8_3 conda-forge libblas 3.9.0 2_openblas conda-forge libcblas 3.9.0 2_openblas conda-forge libcurl 7.71.1 h9bf37e3_8 conda-forge libcxx 11.0.0 h439d374_0 conda-forge libedit 3.1.20191231 h0678c8f_2 conda-forge libev 4.33 haf1e3a3_1 conda-forge libffi 3.2.1 hb1e8313_1007 conda-forge libgfortran 5.0.0 h7cc5361_13 conda-forge libgfortran5 9.3.0 h7cc5361_13 conda-forge liblapack 3.9.0 2_openblas conda-forge libnetcdf 4.7.3 nompi_hda4e5f1_101 conda-forge libnghttp2 1.41.0 h7580e61_2 conda-forge libopenblas 0.3.12 openmp_h54245bb_1 conda-forge libssh2 1.9.0 h8a08a2b_5 conda-forge llvm-openmp 11.0.0 h73239a0_1 conda-forge ncurses 6.2 h2e338ed_3 conda-forge netcdf4 1.5.3 nompi_py36hcf2264a_102 conda-forge numpy 1.19.4 py36hcf5569d_1 conda-forge openssl 1.1.1h haf1e3a3_0 conda-forge pip 20.2.4 py_0 conda-forge pypy 7.3.2 hc8dfbb8_3 conda-forge pypy3.6 7.3.2 h9f31681_2 conda-forge python 3.6.9 3_73_pypy conda-forge python_abi 3.6 1_pypy36_pp73 conda-forge readline 8.0 h0678c8f_2 conda-forge setuptools 49.6.0 py36he57f5f5_2 conda-forge sqlite 3.33.0 h960bd1c_1 conda-forge tk 8.6.10 hb0a8c7a_1 conda-forge wheel 0.35.1 pyh9f0ad1d_0 conda-forge xz 5.2.5 haf1e3a3_1 conda-forge zlib 1.2.11 h7795811_1010 conda-forge ```


Details about conda and system ( conda info ):

See also https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=237502 ``` $ conda info active environment : netcdf-pypy active env location : /Users/dwhs/miniconda3/envs/netcdf-pypy shell level : 3 user config file : /Users/dwhs/.condarc populated config files : /Users/dwhs/.condarc conda version : 4.8.3 conda-build version : not installed python version : 3.7.3.final.0 virtual packages : __osx=10.15.7 base environment : /Users/dwhs/miniconda3 (writable) channel URLs : https://conda.anaconda.org/conda-forge/osx-64 https://conda.anaconda.org/conda-forge/noarch https://conda.anaconda.org/omnia/osx-64 https://conda.anaconda.org/omnia/noarch https://repo.anaconda.com/pkgs/main/osx-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/osx-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /Users/dwhs/miniconda3/pkgs /Users/dwhs/.conda/pkgs envs directories : /Users/dwhs/miniconda3/envs /Users/dwhs/.conda/envs platform : osx-64 user-agent : conda/4.8.3 requests/2.22.0 CPython/3.7.3 Darwin/19.6.0 OSX/10.15.7 UID:GID : 501:20 netrc file : None offline mode : False ```
ocefpaf commented 3 years ago

Locally, conda defaulted to pulling in the newer version (1.5.4) which does not show this issue. But for whatever reason, the OpenPathSampling migration build pulled in 1.5.3. I know can always pin netcdf4!=1.5.3 in my recipe, but can this be fixed upstream?

A pypy install should pull 1.5.4 b/c that is the only version we built with pypy. Pinning !=1.5.3 is a workaround but that should not be part of the solve there b/c there is no 1.5.3 for pyp :-/

Looks like this is a bug in conda's solver. Pinging @isuruf for awareness.

isuruf commented 3 years ago

Should be fixed in an hour or so. See https://github.com/conda-forge/conda-forge-repodata-patches-feedstock/pull/100