Subject: bug#53258: Python unable to find modules within a Singularity container created with guix pack

From: Ludovic Courtès <[email-masked]>
Date: Fri, 04 Feb 2022 21:50:54 +0100

Hello!

Ludovic Courtès <[email-masked]> skribis:

>>>From Marek’s message, it would seem that somewhere file names are
> constructed by appending “..”.  Given Unix’s weird dot-dot semantics,
> relative symlinks could be interfering:

Some news!  Here’s a recap of the IRC discussion earlier today:
‘sys.prefix’ looks like
/tmp/pack2/bin/../../zmv1alp7dzjd6hkc7l6fjz817n2mfzzw-python-3.9.9R.

‘sys.normpath’ does lexical dot-dot resolution (which is incorrect on
POSIX):

  https://docs.python.org/3.11/library/os.path.html#os.path.normpath

Thus, passing the prefix above to ‘sys.normpath’ leads “pack2” to be
erased.

Josselin mentioned “path_hooks” as a possible solution, though I’m not
sure what that means; could you explain?  :-)

Thanks!

Ludo’.