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

Reply via email to