Closed LucaMantani closed 6 months ago
If I try I get
Last login: Fri May 17 09:13:50 on ttys000 (base) juanrojo@juans-mbp ~ % pip install smefit ERROR: Ignored the following versions that require a different python version: 0.0.0 Requires-Python >=3.8,<3.11; 0.0.1 Requires-Python >=3.8,<=3.11.6; 3.0.0 Requires-Python <=3.11.8,>=3.10 ERROR: Could not find a version that satisfies the requirement smefit (from versions: none) ERROR: No matching distribution found for smefit (base) juanrojo@juans-mbp ~ %
any idea?
btw installing from source using conda works fine
Is your python newer than 3.11.6?
It looks like it's required to be older than that. I am not sure of the reason why that is enforced, maybe @jacoterh or @giacomomagni could clarify?
(base) juanrojo@juans-mbp nnpdf40_tuning % python --version Python 3.12.2
yes, I don't knnow why we request an older python version
Indeed, currently, the installation requires python versions between 3.10 and 3.11.8 and any installation done on other versions will fail, like Juan experienced for instance. I do not see any good reason why 3.12 and higher would not be supported, so I will try and change the installation script accordingly.
Hi @giacomomagni, are you able to install locally with pip install . on python 3.12? For me the installation gets stuck at mpi4py-pich with the following message: ERROR: Could not find a version that satisfies the requirement mpi4py-mpich<4.0.0,>=3.1.5 (from smefit). The installation does work on 3.11 though, which maybe explains why we included support up to that version only?
I'm trying now.
I'm having the same error as @jacoterh, so not able to install with 3.12 because of this package:
(test_312) [gmagni@stbc-i1 smefit_release]$ pip install mpi4py-mpich
ERROR: Could not find a version that satisfies the requirement mpi4py-mpich (from versions: none)
ERROR: No matching distribution found for mpi4py-mpich
do you know how to fix it @LucaMantani ?
Otherwise in #79 I'd only update the matplotlib version and the pylint fixes.
@giacomomagni @jacoterh if I replace the mpi4py-mpich line with
mpi4py="*"
it seems to work fine for me with python 3.12
But that package it's different from mpi4py-mpich
.
If you try to run mipexec -n 2 smefit NS path_to_runcard
with only mpi4py
installed you should crash.
This happens because with mpi4py
then you need to install mpicc
separately and we fall back to conda
...
The nice thing of mpi4py-mpich
is that everything can be done with pip
.
An alternative could be to drop completely mpich
in favor of jax
It works fine for me, I tried. If I do mpiexec -n 2 smefit NS blabla.yaml, it works
Ah, wait. It was using the mpiexec I had installed already outside of the environment...
But shouldn't this be fine? mpiexec does not need to be installed with pip, it is often already installed (e.g. in my hpc is already there)
Yes but for instance it's not provided in the Nikhef cluster. So if mpicc
is not available the run will fail...
It's written also in the PyPI
page:
I see. Weird though, it has nothing to do with python so I would assume one can always install it with apt-get or brew?
sure you can always install with something else, before we had the conda snippet... But then we wanted to remove extra burden and have a full consistent installation with pip
, so it's really a matter of choice.
I think we need to wait until the release mpi4py-mpich=3.1.6
.
Ok, sounds good to me :)
I installed smefit from scratch using
pip install .
and it automatically installs the latest matplotlib version 3.9.0. Unfortunately, some parts of the code uses features that have been removed and therefore one gets errors as soon as doingsmefit-h
.Downgrading matplotlib worked fine, but it might be a good idea to adapt the plot routines to the new version, I believe it should be a minor fix.