pySTEPS / pysteps

Python framework for short-term ensemble prediction systems.
https://pysteps.github.io/
BSD 3-Clause "New" or "Revised" License
441 stars 160 forks source link

Install pysteps on Mac with Apple silicon processors #334

Closed GAaronAlexander closed 1 year ago

GAaronAlexander commented 1 year ago

Are there instructions to install pysteps on a mac with the new M1 or M2 chips? I have attempted to follow the instructions that have been outlined, and kept getting the error that there was no such package as pysteps.

I also attempted to create a sub directory within my specific conda environment, and I only got the solving constant solving environment loop for around 45 minutes.

Any help on this would be great!

dnerini commented 1 year ago

Hi @GAaronAlexander thanks for rising this issue. We don't have yet installation guidelines for m1/m2 Mac, but it's something we should look into... Is this something you could possibly help us with?

GAaronAlexander commented 1 year ago

Hi @dnerini ! Thanks for the quick response!

I would be able to help in terms of testing things out and providing what I have already tried, but I am unsure how much more help I would be able to provide other than that. I have not done a lot of software engineering that I would imagine that would be required to get this going!

Let me know what you would like for me to provide!

dnerini commented 1 year ago

Can you try to follow the instructions given in the link below for using conda to install packages compiled for apple intel on the new silicon processors?

https://conda-forge.org/docs/user/tipsandtricks.html#installing-apple-intel-packages-on-apple-silicon

GAaronAlexander commented 1 year ago

Hi!

Was able to get this to work today following an slightly modified version of what was put in the link. I have Summarized this below:

  1. First ensuring that rosetta is actually installed (it is not default) softwareupdate --install-rosetta
  2. Creating a new conda environment that specifies a version of python that works with pysteps conda create -n pysteps python=3.10
  3. Activating the environment conda activate pysteps
  4. Setting up the subdirectory so that conda uses OSX-64 and not the m1 silicon chip python installs (x86-64) conda config --env --set subdir osx-64
  5. Setting up a local variable to point to this subdir specification CONDA_SUBDIR=osx-64 Then, running the usual pysteps install instructions: conda config --env --prepend channels conda-forge conda config --env --set channel_priority strict conda install pysteps

Even though there was only a few packages in the python environment, it still took about 10 minutes to get through the entire install (there was a need for a flexible solve of the environment).

I would probably put in the documentation that you should make sure that this is the FIRST thing that is installed in an environment if needed, because I worry about the amount of time it would take if there were other packages like xarray or cartopy in the environment already as well (these caused my other installs on a different computer to take ~45 minutes to solve an environment).

Do you have any other questions/things that I should try? I have confirmed that at least pysteps works for my needs (generating auto-correlated noise based off of radar fields).