[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#64309: Python dlopen()s musl libc
From: |
Lars-Dominik Braun |
Subject: |
bug#64309: Python dlopen()s musl libc |
Date: |
Tue, 11 Jul 2023 14:43:36 +0200 |
Hi,
there’s a similar issue #63912 and a thread on the guix-devel
mailinglist at
https://lists.gnu.org/archive/html/guix-devel/2023-06/msg00066.html
> So, looks like the default Python behavior is to load the usercustomize
> after the sitecustomize [1], which leads to exactly the behavior you're
> experiencing. I don't know what we should do here, maybe pass `-s` to
> the shebang line of Python to disable loading the usercustomize? That
> would probably be a world-rebuild though. CC'ing the Python team to see
> what they think.
I think the problem is bigger than usercustomize. Any custom PYTHONPATH
also slips through and causes this issue, as well as any custom
GUIX_PYTHONPATH, because the executable wrapper appends it (think nested
`guix shell` invokations with different versions of a library for
an example where this could go wrong).
Guix-managed Python packages (libraries nor applications) should
generally not pick up dependencies from random paths – only those
from their package description, so we can keep Guix’ promise of being
self-contained.
I have experimented with customizing Python’s importing mechanism
through a custom MetaPathFinder. It works by adding a __guix_pythonpath__
variable to every Python package’s __init__.py file and modifying the
module loader’s search path accordingly if such a variable exists. It
would provide exactly that guarantee, but it’s just a PoC at this
point – see attached file.
Apart from that I don’t see a good short-term solution right now. It’s
just how Python works.
Cheers,
Lars
mysitecustomize.py
Description: Text document
- bug#64309: Python dlopen()s musl libc, Ludovic Courtès, 2023/07/07
- bug#64309: Python dlopen()s musl libc, Athena Martin, 2023/07/08
- bug#64309: Python dlopen()s musl libc, Josselin Poiret, 2023/07/09
- bug#64309: Python dlopen()s musl libc, Athena Martin, 2023/07/09
- bug#64309: Python dlopen()s musl libc, Josselin Poiret, 2023/07/10
- bug#64309: Python dlopen()s musl libc, Athena Martin, 2023/07/10
- bug#64309: Python dlopen()s musl libc, Josselin Poiret, 2023/07/11
- bug#64309: Python dlopen()s musl libc,
Lars-Dominik Braun <=
- bug#64309: Python dlopen()s musl libc, Josselin Poiret, 2023/07/12
- bug#64309: Python dlopen()s musl libc, Lars-Dominik Braun, 2023/07/16
- bug#64309: Python dlopen()s musl libc, Athena Martin, 2023/07/10