Installation and setup

Requirements

smhi2epw requires Python 3.11 or newer and internet access when compiling live SMHI data and, when automatic recovery needs it, Open-Meteo ERA5 data. Reading an existing EPW file works offline. A virtual environment is strongly recommended so the package and notebook tools do not interfere with other projects.

The core installation includes numpy, pandas, requests and pvlib>=0.16.1,<0.17. Pip also installs pvlib’s dependencies, including SciPy and h5py. The selected solar-position implementation uses NumPy and requires no optional pvlib acceleration extras. Solar geometry and EPW analysis work offline after installation.

Create a virtual environment

On macOS or Linux:

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

On Windows PowerShell:

py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip

If PowerShell blocks activation, either adjust the current user’s execution policy according to Microsoft guidance or call .venv\Scripts\python directly.

Install for normal use

Install the command line and Python API from PyPI:

python -m pip install smhi2epw

To reproduce a study, record the installed package version and the source data receipt written beside each automatically recovered EPW.

The notebooks live in the repository; the tutorial extra installs dependencies:

python -m pip install -e ".[tutorials]"
jupyter lab examples/

Install from a source checkout

Contributors and readers of the bundled notebooks should clone the repository and use an editable installation:

git clone https://github.com/SB-Chalmers/smhi2epw.git
cd smhi2epw
python -m pip install -e ".[dev,docs,tutorials]"

Verify the environment

The following commands should report a version and display CLI help:

python -c "import smhi2epw; print(smhi2epw.__version__)"
python -c "import pvlib; print(pvlib.__version__)"
smhi2epw --help

Inside Jupyter, verify that import sys; print(sys.executable) points to the same virtual environment. If it does not, select the matching Python kernel or register one with python -m ipykernel install --user --name smhi2epw.