Installation#
PySME can be installed through PyPI (recommended; stable release) or from GitHub source.
Supported environments:
Platforms: Linux, macOS (arm platform only)
The x86/Intel platform macOS is not supported anymore, but you can still install v0.6.23, the last supported PySME version, or download SMElib and compile it manually.
Windows: supported via WSL2 (install/run PySME inside the Linux subsystem)
Python versions:
3.9–3.13.
Set up virtual environment#
This step is optional but recommended.
conda#
conda create -n pysme python=3.12
conda activate pysme
venv (alternative)#
python -m venv .venv
source .venv/bin/activate
Install PySME#
Stable release (recommended)#
pip install pysme-astro
On macOS arm64, pip uses a pre-built wheel only when one matches your Python
and macOS version. If no compatible wheel is available, it falls back to a
source build and therefore needs a local compiler toolchain.
Install the required build tools with Homebrew before retrying:
brew install gcc cmake ninja
This requirement is for the source-build fallback path. Normal wheel installs do not need these tools.
From GitHub source (latest)#
Clone the repository#
git clone --recurse-submodules https://github.com/SpectroscopyMadeEasy/PySME.git
cd PySME
Install PySME from source#
pip install -U pip
pip install .
On macOS arm64, make sure the build dependencies are installed first:
brew install gcc cmake ninja
If you already cloned without submodules, run:
git submodule update --init --recursive
From GitHub source (specific release tag)#
Use this for reproducible source installs:
git clone --recurse-submodules https://github.com/SpectroscopyMadeEasy/PySME.git
cd PySME
git checkout <tag>
git submodule update --init --recursive
pip install .
Legacy source versions#
For older source versions that predate the new repository layout, use the legacy repository:
git clone --recurse-submodules https://github.com/SpectroscopyMadeEasy/PySME-legacy.git
cd PySME-legacy
git checkout <old_tag>
git submodule update --init --recursive
pip install .
For very old tags, if build metadata is incomplete, follow the historical notes in the legacy docs.
Verify installation#
python -c "import pysme; print('PySME version:', pysme.__version__)"
You should see an output of PySME version: [version].
Configure data directories (optional)#
PySME stores atmosphere/NLTE/cache files under ~/.sme/ by default.
To use a different location, edit ~/.sme/config.json:
{
"data.hlineprof": "/path/to/pysme/hlineprof",
"data.atmospheres": "/path/to/pysme/atmospheres",
"data.nlte_grids": "/path/to/pysme/nlte_grids"
}
Notes:
~can be used in these paths.Updating paths does not move existing downloaded files automatically.
Uninstall#
You can uninstall PySME by:
pip uninstall pysme-astro
Warning
Note that several files (data file, SMElib file etc) will remain after the uninstall. They are all list in the output of the pip command, and it is recommended to remove them manually.
The content below to be removed.
Running SME#
An simple minimum example is provided in the examples directory. Make sure to also download the provided input structure.
You can then run it with:
python minimum.py
Warning
PySME requires a pre-compiled C++/Fortran SME library.
Wheels are currently provided for Linux and macOS.
For Windows, we recommend using WSL2 (install PySME inside the Linux environment).
PySME requires the pre-compled C++/Fortran SME library to run. Currently we deliver SME library with Linux and Mac version; for Windows users, we recommend to use WSL and hence the Linux version.