pymc icon indicating copy to clipboard operation
pymc copied to clipboard

Conda can select old PyMC version with "conda install -c conda-forge pymc"

Open maresb opened this issue 3 years ago • 3 comments

Description of your problem

Please provide a minimal, self-contained, and reproducible example.

On Linux,

conda create -y --name pymc4-5875 -c conda-forge python=3.9
conda activate pymc4-5875
conda install -y -c conda-forge pymc

results in the installation of conda-forge/linux-64::pymc-4.0.0b6-py39ha563b64_0. This beta version doesn't install mkl-service and results in

$ python -c "import pymc"
/tmp/tmp55mck6a7/source.c:1:10: fatal error: cblas.h: No such file or directory
    1 | #include <cblas.h>
      |          ^~~~~~~~~
compilation terminated.

It's reported that subsequent inference is very slow.

Please provide the full traceback.

$ conda create -y --name pymc4-5875 -c conda-forge python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.11.0
  latest version: 4.13.0

Please update conda by running

    $ conda update -n base conda



## Package Plan ##

  environment location: ~/micromamba/envs/pymc4-5875

  added / updated specs:
    - python=3.9


The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-2_gnu
  bzip2              conda-forge/linux-64::bzip2-1.0.8-h7f98852_4
  ca-certificates    conda-forge/linux-64::ca-certificates-2022.5.18.1-ha878542_0
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.36.1-hea4e1c9_2
  libffi             conda-forge/linux-64::libffi-3.4.2-h7f98852_5
  libgcc-ng          conda-forge/linux-64::libgcc-ng-12.1.0-h8d9b700_16
  libgomp            conda-forge/linux-64::libgomp-12.1.0-h8d9b700_16
  libnsl             conda-forge/linux-64::libnsl-2.0.0-h7f98852_0
  libuuid            conda-forge/linux-64::libuuid-2.32.1-h7f98852_1000
  libzlib            conda-forge/linux-64::libzlib-1.2.12-h166bdaf_0
  ncurses            conda-forge/linux-64::ncurses-6.3-h27087fc_1
  openssl            conda-forge/linux-64::openssl-3.0.3-h166bdaf_0
  pip                conda-forge/noarch::pip-22.1.2-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.9.13-h2660328_0_cpython
  python_abi         conda-forge/linux-64::python_abi-3.9-2_cp39
  readline           conda-forge/linux-64::readline-8.1-h46c0cb4_0
  setuptools         conda-forge/linux-64::setuptools-62.3.3-py39hf3d152e_0
  sqlite             conda-forge/linux-64::sqlite-3.38.5-h4ff8645_0
  tk                 conda-forge/linux-64::tk-8.6.12-h27826a3_0
  tzdata             conda-forge/noarch::tzdata-2022a-h191b570_0
  wheel              conda-forge/noarch::wheel-0.37.1-pyhd8ed1ab_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.12-h166bdaf_0


Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate pymc4-5875
#
# To deactivate an active environment, use
#
#     $ conda deactivate

$ conda activate pymc4-5875
$ conda install -y -c conda-forge pymc
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.11.0
  latest version: 4.13.0

Please update conda by running

    $ conda update -n base conda



## Package Plan ##

  environment location: ~/micromamba/envs/pymc4-5875

  added / updated specs:
    - pymc


The following NEW packages will be INSTALLED:

  aeppl              conda-forge/noarch::aeppl-0.0.27-pyhd8ed1ab_0
  aesara             conda-forge/linux-64::aesara-2.5.1-py39h788985e_0
  arviz              conda-forge/noarch::arviz-0.12.1-pyhd8ed1ab_0
  binutils           conda-forge/linux-64::binutils-2.36.1-hdd6e379_2
  binutils_impl_lin~ conda-forge/linux-64::binutils_impl_linux-64-2.36.1-h193b22a_2
  binutils_linux-64  conda-forge/linux-64::binutils_linux-64-2.36-hf3e587d_10
  brotli             conda-forge/linux-64::brotli-1.0.9-h166bdaf_7
  brotli-bin         conda-forge/linux-64::brotli-bin-1.0.9-h166bdaf_7
  c-ares             conda-forge/linux-64::c-ares-1.18.1-h7f98852_0
  c-compiler         conda-forge/linux-64::c-compiler-1.4.2-h166bdaf_0
  cachetools         conda-forge/noarch::cachetools-5.0.0-pyhd8ed1ab_0
  certifi            conda-forge/linux-64::certifi-2022.5.18.1-py39hf3d152e_0
  cftime             conda-forge/linux-64::cftime-1.6.0-py39hd257fcd_1
  cloudpickle        conda-forge/noarch::cloudpickle-2.1.0-pyhd8ed1ab_0
  cons               conda-forge/noarch::cons-0.4.5-pyhd8ed1ab_0
  curl               conda-forge/linux-64::curl-7.83.1-h2283fc2_0
  cxx-compiler       conda-forge/linux-64::cxx-compiler-1.4.2-h924138e_0
  cycler             conda-forge/noarch::cycler-0.11.0-pyhd8ed1ab_0
  etuples            conda-forge/noarch::etuples-0.3.5-pyhd8ed1ab_0
  fastprogress       conda-forge/noarch::fastprogress-1.0.2-pyhd8ed1ab_0
  filelock           conda-forge/noarch::filelock-3.7.1-pyhd8ed1ab_0
  fonttools          conda-forge/linux-64::fonttools-4.33.3-py39hb9d737c_0
  freetype           conda-forge/linux-64::freetype-2.10.4-h0708190_1
  gcc                conda-forge/linux-64::gcc-10.3.0-he2824d0_10
  gcc_impl_linux-64  conda-forge/linux-64::gcc_impl_linux-64-10.3.0-hf2f2afa_16
  gcc_linux-64       conda-forge/linux-64::gcc_linux-64-10.3.0-hc39de41_10
  giflib             conda-forge/linux-64::giflib-5.2.1-h36c2ea0_2
  gxx                conda-forge/linux-64::gxx-10.3.0-he2824d0_10
  gxx_impl_linux-64  conda-forge/linux-64::gxx_impl_linux-64-10.3.0-hf2f2afa_16
  gxx_linux-64       conda-forge/linux-64::gxx_linux-64-10.3.0-h2593f52_10
  hdf4               conda-forge/linux-64::hdf4-4.2.15-h10796ff_3
  hdf5               conda-forge/linux-64::hdf5-1.12.1-nompi_h4df4325_104
  importlib-metadata conda-forge/linux-64::importlib-metadata-4.11.4-py39hf3d152e_0
  importlib_metadata conda-forge/noarch::importlib_metadata-4.11.4-hd8ed1ab_0
  jpeg               conda-forge/linux-64::jpeg-9e-h166bdaf_1
  kernel-headers_li~ conda-forge/noarch::kernel-headers_linux-64-2.6.32-he073ed8_15
  keyutils           conda-forge/linux-64::keyutils-1.6.1-h166bdaf_0
  kiwisolver         conda-forge/linux-64::kiwisolver-1.4.2-py39hf939315_1
  krb5               conda-forge/linux-64::krb5-1.19.3-h08a2579_0
  lcms2              conda-forge/linux-64::lcms2-2.12-hddcbb42_0
  lerc               conda-forge/linux-64::lerc-3.0-h9c3ff4c_0
  libblas            conda-forge/linux-64::libblas-3.9.0-15_linux64_openblas
  libbrotlicommon    conda-forge/linux-64::libbrotlicommon-1.0.9-h166bdaf_7
  libbrotlidec       conda-forge/linux-64::libbrotlidec-1.0.9-h166bdaf_7
  libbrotlienc       conda-forge/linux-64::libbrotlienc-1.0.9-h166bdaf_7
  libcblas           conda-forge/linux-64::libcblas-3.9.0-15_linux64_openblas
  libcurl            conda-forge/linux-64::libcurl-7.83.1-h2283fc2_0
  libdeflate         conda-forge/linux-64::libdeflate-1.10-h7f98852_0
  libedit            conda-forge/linux-64::libedit-3.1.20191231-he28a2e2_2
  libev              conda-forge/linux-64::libev-4.33-h516909a_1
  libgcc-devel_linu~ conda-forge/linux-64::libgcc-devel_linux-64-10.3.0-he6cfe16_16
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-12.1.0-h69a702a_16
  libgfortran5       conda-forge/linux-64::libgfortran5-12.1.0-hdcd56e2_16
  liblapack          conda-forge/linux-64::liblapack-3.9.0-15_linux64_openblas
  libnetcdf          conda-forge/linux-64::libnetcdf-4.8.1-nompi_h329d8a1_102
  libnghttp2         conda-forge/linux-64::libnghttp2-1.47.0-he49606f_0
  libopenblas        conda-forge/linux-64::libopenblas-0.3.20-pthreads_h78a6416_0
  libpng             conda-forge/linux-64::libpng-1.6.37-h21135ba_2
  libsanitizer       conda-forge/linux-64::libsanitizer-10.3.0-h26c7422_16
  libssh2            conda-forge/linux-64::libssh2-1.10.0-ha35d2d1_2
  libstdcxx-devel_l~ conda-forge/linux-64::libstdcxx-devel_linux-64-10.3.0-he6cfe16_16
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-12.1.0-ha89aaad_16
  libtiff            conda-forge/linux-64::libtiff-4.4.0-h0fcbabc_0
  libwebp            conda-forge/linux-64::libwebp-1.2.2-h3452ae3_0
  libwebp-base       conda-forge/linux-64::libwebp-base-1.2.2-h7f98852_1
  libxcb             conda-forge/linux-64::libxcb-1.13-h7f98852_1004
  libzip             conda-forge/linux-64::libzip-1.8.0-h1c5bbd1_1
  logical-unificati~ conda-forge/noarch::logical-unification-0.4.5-pyhd8ed1ab_0
  lz4-c              conda-forge/linux-64::lz4-c-1.9.3-h9c3ff4c_1
  matplotlib-base    conda-forge/linux-64::matplotlib-base-3.5.2-py39h700656a_0
  minikanren         conda-forge/noarch::minikanren-1.0.3-pyhd8ed1ab_0
  multipledispatch   conda-forge/noarch::multipledispatch-0.6.0-py_0
  munkres            conda-forge/noarch::munkres-1.1.4-pyh9f0ad1d_0
  netcdf4            conda-forge/linux-64::netcdf4-1.5.8-nompi_py39h64b754b_101
  numpy              conda-forge/linux-64::numpy-1.22.4-py39hc58783e_0
  openjpeg           conda-forge/linux-64::openjpeg-2.4.0-hb52868f_1
  packaging          conda-forge/noarch::packaging-21.3-pyhd8ed1ab_0
  pandas             conda-forge/linux-64::pandas-1.4.2-py39h1832856_2
  pillow             conda-forge/linux-64::pillow-9.1.1-py39hae2aec6_1
  pthread-stubs      conda-forge/linux-64::pthread-stubs-0.4-h36c2ea0_1001
  pymc               conda-forge/linux-64::pymc-4.0.0b6-py39ha563b64_0
  pyparsing          conda-forge/noarch::pyparsing-3.0.9-pyhd8ed1ab_0
  python-dateutil    conda-forge/noarch::python-dateutil-2.8.2-pyhd8ed1ab_0
  pytz               conda-forge/noarch::pytz-2022.1-pyhd8ed1ab_0
  scipy              conda-forge/linux-64::scipy-1.8.1-py39he49c0e8_0
  semver             conda-forge/noarch::semver-2.13.0-pyh9f0ad1d_0
  six                conda-forge/noarch::six-1.16.0-pyh6c4a22f_0
  sysroot_linux-64   conda-forge/noarch::sysroot_linux-64-2.12-he073ed8_15
  toolz              conda-forge/noarch::toolz-0.11.2-pyhd8ed1ab_0
  typing-extensions  conda-forge/noarch::typing-extensions-3.10.0.2-hd8ed1ab_0
  typing_extensions  conda-forge/noarch::typing_extensions-3.10.0.2-pyha770c72_0
  unicodedata2       conda-forge/linux-64::unicodedata2-14.0.0-py39hb9d737c_1
  xarray             conda-forge/noarch::xarray-2022.3.0-pyhd8ed1ab_0
  xarray-einstats    conda-forge/noarch::xarray-einstats-0.2.2-pyhd8ed1ab_0
  xorg-libxau        conda-forge/linux-64::xorg-libxau-1.0.9-h7f98852_0
  xorg-libxdmcp      conda-forge/linux-64::xorg-libxdmcp-1.1.3-h7f98852_0
  zipp               conda-forge/noarch::zipp-3.8.0-pyhd8ed1ab_0
  zstd               conda-forge/linux-64::zstd-1.5.2-h8a70e8d_1


Preparing transaction: done
Verifying transaction: done
Executing transaction: done

Please provide any additional information below.

This was originally reported in https://github.com/conda-forge/pymc-feedstock/pull/41#issuecomment-1148135445 and https://github.com/conda-forge/pymc-feedstock/issues/43 but with slightly different conditions.

I have found two independent ways to resolve the issue:

  1. In the conda install command, indicate the version with "pymc>=4". A few caveats here: neither pymc=4 nor pymc=4.0.0 exclude 4.0.0b6. The quotation marks are mandatory to prevent Bash from interpreting the > character as an output redirection to a file named =4.
  2. Use Mamba instead of Conda.

I wrote some additional thoughts on this issue in https://github.com/conda-forge/pymc-feedstock/issues/43#issuecomment-1150957693.

I wonder if the installation instructions should be updated to recommend either or both of:

  • "pymc>=4"
  • installing Mamba

maresb avatar Jun 09 '22 20:06 maresb

I updated the wiki installation instructions for now.

twiecki avatar Jun 10 '22 09:06 twiecki

Excellent! That should solve this issue (I hope).

While we're thinking about it, it might be clever to add a "Fancy Install" section to Linux and Windows.

Suggestion for the Windows instructions:

...for those who would prefer to manage the GCC compiler installation on their own...

...for those who would prefer to manage the BLAS and GCC compiler installations on their own...

And then removing mention of Chocolatey (and also numba?) we could copy "Fancy Install" to Linux/Mac.

We should probably mention in the case of M1 that we use OpenBLAS. (helpful link to the exact Conda package names)

maresb avatar Jun 10 '22 10:06 maresb

Seeing this issue as well, downloading the beta release by default. And following the updated wiki instructions (>=4) I get the following error:

Encountered problems while solving:
  - nothing provides vc 9.* needed by mkl-service-2.0.1-py27h0c8e037_0

ran it a second time and got something slightly different

Encountered problems while solving:
  - nothing provides mkl >=2019.3,<2020.0a0 needed by mkl-service-2.0.1-py27h0c8e037_0

this was with mamba, not conda directly (Windows, AMD64) interestingly this seems to be from using OpenBlas (nomkl)/mamba and using conda directly and allowing mkl looks like it downloads correctly.

winedarksea avatar Aug 18 '22 19:08 winedarksea

Closing because the installation instructions seem to have taken care of the primary issue. Also potentially surpassed by https://github.com/pymc-devs/pymc/issues/6750.

cluhmann avatar Jun 01 '23 17:06 cluhmann