Installation guide / conda-forge installs old version

Wondering why does the installation guide’s recommended command conda install -c conda-forge mkl pymc3 installs 3.8 and not the latest release, despite claiming so? Saw in older questions that this was to be changed in 3.11.1. The solution was to explicitly specify the version, but took me a while to figure that out (between sorting out dependency managers and pointing the notebook at the right environment).

While on the subject of the installation guide, Theano-PyMC links to aesara, but they are different things and the latter is not recommended for use yet? (PyMC3 and Theano page links Theano-PyMC to aesara also.) Thank you.


That is definitely surprising and concerning. Some questions:

  • Are there any warnings about incompatible packages?
  • Is this in a fresh environment?
  • Does it work if you conda install -c conda-forge mkl pymc3=3.11.2? Any warnings there?

I think @junpenglao has also encountered that recently, we should update the installation guides with the workarounds first, then try to see why this is happening. I understand that updating the wiki to be explicit on pymc3 version should fix the issue?

Some quick summary of the situation: we are currently working on the next major version of PyMC3, v4.0. PyMC3 4.x will use Aesara as a computational backend. Aesara is a fork of Theano that is and will be maintained by the PyMC project, that has several significant changes and improvements. There have been several reasons for that, The future of PyMC3, or: Theano is dead, long live Theano and Keynote: PyMC: Past, Present, and Future by Chris Fonnesbeck will give a broader context, but one of those reasons is that development of Theano stopped. The process however hasn’t been Theano → Aesara. We first named the fork Theano-pymc and focused on fixing and updating Theano to ensure PyMC3 3.x would still run without issues or warnings for the time being. Afterwards, the fork was renamed to Aesara and development and improvenents continued and increased.

Both packages have their source code in the aesara repo even if they are separate pypi packages. In fact, we can checkout the theano-pymc commit and backport major issues and security vulnerabilities that may affect PyMC3 3.x, and will probably do so for a while until pymc3 4.x has been released and has undergone some “real world” testing.

  • Are there any warnings about incompatible packages? No warnings when installing, just when uninstalling (“differing package resolutions” ones).
  • Is this in a fresh environment? I’ve cleaned up related packages that might have caused trouble, including on the system level, but not my whole venv (as it’s the main/only one I work out of) - will keep it in mind next time though.
  • Does it work if you conda install -c conda-forge mkl pymc3=3.11.2? Any warnings there? The explicitly specified version indeed worked, no warnings there. I just had to then also explicitly specify arviz to be 0.11.2 as I was getting the 0.11.0 with this.

I’ve saved command history (including output) if needed. Looking back at it, realized that conda install -c conda-forge mkl pymc3 installs 3.6 and conda install -c conda-forge pymc3 installs 3.8. And that conda remove theano and conda remove theano-pymc remove pymc3 as well (assuming this is expected).

Thank you.

1 Like

While trying to update from 3.8, I was definitely running into problems with this. As @olgadk7 mentions, Conda installation commands on both the wiki and GitHub seem to install pymc3 v3.8. I was able to get 3.11.2 installed using conda update, but that seemed to cause an issue where theano-pymc would not be seen as theano during the check in pymc3 __init__ (even though theano wasn’t listed in conda list and theano-pymc was). I couldn’t uninstall theano-pymc to reinstall as that would uninstall pymc3 and the whole process would start again.

I think that doing an install with the explicit version worked for me. So far so good. That being the case, I agree that this approach should be the default on the installation pages – at least until the switch to Aesara happens.

1 Like