python (3.10) dirs

Jan Rękorajski baggins at pld-linux.org
Tue Apr 26 23:31:55 CEST 2022


On Tue, 26 Apr 2022, Jan Rękorajski wrote:

> On Tue, 26 Apr 2022, Jakub Bogusz wrote:
> 
> > On Tue, Apr 19, 2022 at 01:56:04AM +0200, Jan Rękorajski wrote:
> > > On Tue, 19 Apr 2022, Jan Rękorajski wrote:
> > > 
> > > > On Mon, 18 Apr 2022, Jakub Bogusz wrote:
> > > > 
> > > > > After recent python3.10 changes meson started to use /usr/share for
> > > > > purelib, but automake's pythondir is broken now:
> > > > > 
> > > > > pythondir (platform-indepdendent) is wrong:
> > > > > 
> > > > > $ python2 -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='/usr'))"
> > > > > /usr/share/python2.7/site-packages
> > > > > 
> > > > > $ python3 -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='/usr'))"
> > > > > /usr/lib/python3.10/site-packages
> > > > > 
> > > > > pyexecdir is OK:
> > > > > 
> > > > > $ python2 -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='/usr'))"
> > > > > /usr/lib64/python2.7/site-packages
> > > > > 
> > > > > $ python3 -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='/usr'))"
> > > > > /usr/lib64/python3.10/site-packages
> > > > 
> > > > What package version do you have? Python3 shows /usr/share for me:
> > > > 
> > > > $ python3 -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='/usr'))" ; echo ; rpm -q python3
> > > > <string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
> > > > <string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
> > > > /usr/share/python3.10/site-packages
> > > > python3-3.10.4-5.x86_64
> > > > 
> > > > On a side note, distutils is deprecated...
> > > 
> > > The problematic dir seems to be coming from /usr/share/python3.10/site-packages/distutils-precedence.pth
> > > from python3-setuptools-62.0.0-1.noarch. Plain python should return 'share' there.
> > 
> > It's automake's standard AM_PATH_PYTHON that refers to distutils.
> > 
> > Maybe we should rework revert-debian-python-hacks.patch ...
> 
> Maybe I just fixed this in python3-setuptools-62.0.0-2 with a ~1 liner

More to the point, python3 has all paths as we want them, but if you install
python3-setuptool it will override stdlib sysconfig with its own
implementation. And that was what was broken.

-- 
Jan Rękorajski                    | PLD/Linux
SysAdm | baggins<at>pld-linux.org | http://www.pld-linux.org/


More information about the pld-devel-en mailing list