FYI Python 3.9 has a new sys.platlibdir to choose between "lib" and
"lib64". Fedora and OpenSUSE use /usr/lib64 directory on 64-bit
systems rather than /usr/lib.

On 64-bit Fedora, sys.platlibdir is set to lib64:

$ python3.9 -c 'import sys; print(sys.platlibdir)'
lib64

Commented (simplified) sys.path:

$ python3.9 -m site
sys.path = [
    (...)
    '/usr/lib64/python3.9',  # stdlib (pure Python)
    '/usr/lib64/python3.9/lib-dynload',  # stdlib (C extensions)
    (...)
    '/usr/lib64/python3.9/site-packages',
    '/usr/lib/python3.9/site-packages',  # RPM packages installed by dnf
]
(...)

Fedora also uses sub-directories in /usr/local for packages installed
by pip (here are directories of Python 3.8):

    '/usr/local/lib64/python3.8/site-packages',
    '/usr/local/lib/python3.8/site-packages',

For curious people, see https://bugs.python.org/issue1294959 which
took 15 years to be fixed! Fedora and OpenSUSE maintained a large
downstream stream for at least 10 years :-) I added sys.platlibdir to
remove this downstream change.

Victor

Le sam. 3 oct. 2020 à 16:46, Mikhail Golubev via Python-Dev
<python-dev@python.org> a écrit :
>
> Hi everyone!
>
> First of all, sorry for bringing up, perhaps, a trivial matter, but since 
> it's about the sources I guess it's better to ask it here.
>
> I'm investigating a curious problem caused by the fact that in a user's 
> virtualenv, created with the standard "venv" module, "lib64" directory, 
> traditionally symlinked to "lib", gets included in sys.path
> instead of "lib" itself.
>
> ```
> $ python -msite
>
> sys.path = [
>     '/current/working/directory'
>     '/usr/lib64/python36.zip',
>     '/usr/lib64/python3.6',
>     '/usr/lib64/python3.6/lib-dynload',
>     '/path/to/venv/lib64/python3.6/site-packages',
> ]
> ```
>
> The user is on Gentoo, and, though the venv's layout is exactly the same, 
> it's different from the typical result on a Debian-based distribution where 
> it's the original "lib" in sys.path, not its "lib64" link. I'm wondering 
> what's controlling this behavior. Modules/getpath.c doesn't mention 
> architecture-dependent lib directories anywhere, at least at first glance. 
> Could someone please give me a hint about where to look in the sources or, 
> maybe, which build options are affecting this?
>
> Thanks a lot!
> _______________________________________________
> Python-Dev mailing list -- python-dev@python.org
> To unsubscribe send an email to python-dev-le...@python.org
> https://mail.python.org/mailman3/lists/python-dev.python.org/
> Message archived at 
> https://mail.python.org/archives/list/python-dev@python.org/message/5T72JDQG7D44CFYN7URPB5I5JATMD6AR/
> Code of Conduct: http://python.org/psf/codeofconduct/



-- 
Night gathers, and now my watch begins. It shall not end until my death.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/OBKWLJPJLONT4TV6YIQM5N2JJBCX4VMR/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to