From bff0d9d4c4eceba2eea3eafb1e4c6a70785b11c1 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Sun, 23 Jul 2023 18:47:09 -0700 Subject: [PATCH] __init__.py: Windows DLL Support 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 --- Python/pywarpx/__init__.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) 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