stan-dev / httpstan

HTTP interface to Stan, a package for Bayesian inference.
ISC License
40 stars 15 forks source link

ERROR: Could not find a version that satisfies the requirement httpstan<4.8,>=4.7 (from pystan) #594

Closed mallman closed 2 years ago

mallman commented 2 years ago

I am having a heck of a time trying to install pystan. The latest I can get installed is 3.1.1. If I try to install version 3.4.0 I get the error from pip:

ERROR: Could not find a version that satisfies the requirement httpstan<4.8,>=4.7 (from pystan)

I've seen many similar problems in my search on the interwebs, however nothing I try has resolved the issue. I'm trying to install this in a docker image based on centos:7.9.2009. Here are some software versions installed in my image:

[jovyan@dc3-5360-102-003 ~]$ python --version
Python 3.9.7
[jovyan@dc3-5360-102-003 ~]$ pip --version
pip 22.0.4 from /opt/conda/lib/python3.9/site-packages/pip (python 3.9)
[jovyan@dc3-5360-102-003 ~]$ gcc --version
gcc (GCC) 11.2.1 20210728 (Red Hat 11.2.1-1)

Can someone please help?

riddell-stan commented 2 years ago

We do keep track of Linux distributions that work with pystan (httpstan): https://pystan.readthedocs.io/en/latest/faq.html#what-linux-distributions-are-supported

I believe the problem with older operating systems is an incompatible version of glibc.

If you can't get things working on Centos, you could try using cmdstan or cmdstanpy.

mallman commented 2 years ago

I was able to install it from source, no problem. I guess pip is not up to the task. Thank you.

Juillermo commented 2 years ago

I am having a similar issue when installing pystan with python3 -m pip install pystan:

ERROR: Could not find a version that satisfies the requirement httpstan<4.8,>=4.7 (from pystan) (from versions: 0.2.5, 0.3.0, 0.3.1, 0.4.0, 0.5.0, 0.6.0, 0.7.2, 0.7.3, 0.7.5, 0.7.6, 0.8.0, 0.9.0, 0.10.1, 1.1.0, 1.1.1, 1.1.2, 1.1.4, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.1.0, 2.2.0, 2.3.0, 4.0.0, 4.1.0, 4.2.1, 4.3.0, 4.3.1, 4.3.2, 4.4.0, 4.4.1, 4.4.2)

So it seems that the httpstan version that gets installed by pip is 4.42, while pystan=3.4 requires httpstan=4.7.

I am using Ubuntu 20.04, so the operating system should not be a problem.

python version: Python 3.8.10
pip version: pip 20.0.2
gcc version: 9.4.0
riddell-stan commented 2 years ago

On Ubuntu 20.04 you must update pip with python3 -m pip install -U pip. Newer versions of pip know how to process the httpstan wheels we publish.

Without upgrading pip:

$ python3 -m venv venv1
$ source venv1/bin/activate.fish 
(venv1) $ python3 -m pip --version
pip 20.0.2 from /tmp/venv1/lib/python3.8/site-packages/pip (python 3.8)
(venv1) $ python3 -m pip install httpstan
Collecting httpstan
  Using cached httpstan-4.4.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.8 MB)

After upgrading pip:

$ python3 -m venv venv2
$ source venv2/bin/activate.fish
(venv2) $ python3 -m pip install -U pip
Collecting pip ...
Successfully installed pip-22.0.4
(venv2) $ python3 -m pip install httpstan
Collecting httpstan
  Downloading httpstan-4.7.2-cp38-cp38-manylinux_2_24_x86_64.whl (39.3 MB)
Juillermo commented 2 years ago

That solved the issue indeed, thanks!!