-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Meta: Scientific Python macOS Stack #16215
Description
This issue is a multi-months experience report on getting a pretty standard scientific software stack up on macOS. Thank you to @LDAmorim for trying and reporting all things in a dedicated manner. You are the best! ✨
Thank you also already to everyone that helped us in the last months, you rock 🚀
Setup a Compiler
The first steps are already problematic.
Clone-and-go is not really an option even on the latest macOS Catalina, too many things are just GCC specific. One can document this, to ease the pain.
Users will try to bootstrap a GCC with spack install gcc. This usually/often/randomly(?) will fail when bootstrapping from AppleClang (latest test: works 🎉). The Slack-level work-around is to use brew install gcc and register that. If that's the only way to get started, then let's document that.
Alternatively, let's try to get dependency/package issues fixed with AppleClang.
The Software Stack
spack install py-jupyter
spack install py-scipy
spack install py-matplotlib
spack install py-docutils
spack install py-packaging
spack install py-sympy
spack install py-mpi4py
spack install py-sphinx
spack install py-sphinxcontrib-programoutput
spack install py-sphinx-rtd-theme
spack install graphviz
spack install git
spack install mercurial
spack install subversion
Related Issues
So far, half of the newly reported issue were solvable. Other related macOS + GCC issues (among other open ones in which the user participates):
Still challenging are even some basics:
pythonitself: Python lacks _scproxy on macOS #2230 (comment)py-setuptoolshttps://github.com/ax3l/spack-emacs/runs/606176488?check_suite_focus=truepy-numpydoes not build without disabling blas and lapackopenblas: IIRC, the source issue forpy-numpypy-jupyterInstallation issue: llvm #15410 (and below)glibInstallation issue: glib #16214
Time to Solution
Just to mention, build times on Apple laptops for python stacks are problematic, in part since people keep older hardware (but with recent OS versions) for (too) many years and in part because all laptop build times are problematic (a maximum of 4 physical cores is what most people have these days).
A single issue down the stack rebuilds many large dependencies such as llvm regularly, since such huge projects are used in many popular python packages. One cannot understate what an influence build caches for macOS would have.
Impact
macOS developer laptops are (for me) surprisingly common, for example more than half of our group develops on one. So covering common stacks reliably will have a large impact. (Memo to myself: *Apply nudge to all of you to switch to Linux now. You are all just using a GNU/Linux software stack in an expensive case :-p * Back to topic?)
Information on your system
macOS 10.15 Catalina