diff --git a/Python/pywarpx/__init__.py b/Python/pywarpx/__init__.py index 0db70a948a1..f0f4177d48f 100644 --- a/Python/pywarpx/__init__.py +++ b/Python/pywarpx/__init__.py @@ -1,10 +1,27 @@ -# Copyright 2016-2022 The WarpX Community +# Copyright 2016-2023 The WarpX Community # # This file is part of WarpX. # # Authors: Andrew Myers, David Grote, Lorenzo Giacomel, Axel Huebl # License: BSD-3-Clause-LBNL +import os + +# Python 3.8+ on Windows: DLL search paths for dependent +# shared libraries +# Refs.: +# - https://github.com/python/cpython/issues/80266 +# - https://docs.python.org/3.8/library/os.html#os.add_dll_directory +if os.name == "nt": + # add anything in the current directory + pwd = __file__.rsplit(os.sep, 1)[0] + os.sep + os.add_dll_directory(pwd) + # add anything in PATH + paths = os.environ.get("PATH", "") + for p in paths.split(";"): + if os.path.exists(p): + os.add_dll_directory(p) + from .Algo import algo from .Amr import amr from .Amrex import amrex