New submission from xoviat <xov...@gmail.com>: On linux and macOS, a mechanism exists to relocate shared libraries inside of a wheel. Auditwheel creates a .libs folder and places the shared libraries inside of it. The problem is that on Windows, the rpath mechanism doesn't exist. We've attempted to ameliorate the situation with NumPy by modifying the DLL search path ourselves. I think this should be done in Python itself.
Here is what I propose: for each folder in site packages that matches the foldername created by auditwheel, specifically: 1. A folder directly inside site-packages that ends with '.libs' 2. A folder two levels under site-packages that is named 'libs' Python should add these folders to the DLL search path at some point before the matching extensions are imported, so that DLLs located in these paths can be imported by a call to LoadLibrary. The reason that this should be done in Python is that packages shouldn't be modifying the DLL search path, but that's currently what's required. The alternative, current, recommendation is to place shared libraries in the same folder as the extension, but this approach fails when the shared library needs to be shared between more than one extension in different subpackages, but in the same distribution package. ---------- components: Extension Modules messages: 309642 nosy: xoviat priority: normal severity: normal status: open title: Add a shared library mechanism for win32 type: enhancement versions: Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue32516> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com