[Touch-packages] [Bug 1408092] Re: sysconfig.get_path('purelib') points to site-packages directory

2018-06-25 Thread tripzero
The issue is that /usr/lib/python3/sysconfig.py is hardcoded to 'site-
packages' (see _INSTALL_SCHEMES variable in the code).  If your code
uses sysconfig.get_path() to get the python3 site dir, it will fail on
ubuntu.

So either the fix needs to change /usr/lib/python3/sysconfig.py or
packages need to be fixed to use distutils

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to python3-defaults in
Ubuntu.
https://bugs.launchpad.net/bugs/1408092

Title:
  sysconfig.get_path('purelib') points to site-packages directory

Status in python3-defaults package in Ubuntu:
  Confirmed
Status in python3.5 package in Ubuntu:
  Confirmed

Bug description:
  purelib and platlib paths in Python 3 sysconfig module point to site-
  packages directory:

  $ python3 -m sysconfig

  Platform: "linux-x86_64"
  Python version: "3.4"
  Current installation scheme: "posix_prefix"

  Paths: 
data = "/usr"
include = "/usr/include/python3.4m"
platinclude = "/usr/include/python3.4m"
platlib = "/usr/lib/python3.4/site-packages"
platstdlib = "/usr/lib/python3.4"
purelib = "/usr/lib/python3.4/site-packages"
scripts = "/usr/bin"
stdlib = "/usr/lib/python3.4"
  ...

  whereas Python 2 points to dist-packages:

  Platform: "linux-x86_64"
  Python version: "2.7"
  Current installation scheme: "posix_local"

  Paths: 
data = "/usr/local"
include = "/usr/local/include/python2.7"
platinclude = "/usr/local/include/python2.7"
platlib = "/usr/local/lib/python2.7/dist-packages"
platstdlib = "/usr/lib/python2.7"
purelib = "/usr/local/lib/python2.7/dist-packages"
scripts = "/usr/local/bin"
stdlib = "/usr/lib/python2.7"
  ...

  One severe consequence of this is that automake is installing Python
  modules to a location which is not in sys.path, namely site-packages
  directory.

  When one uses automake to create a Makefile that installs a Python
  module to the system, it is installed into /usr/local/lib/python3.4
  /site-packages since automake/aclocal uses sysconfig to determine
  where the package will be installed.

  From /usr/share/aclocal-1.14/python.m4 file:

AC_CACHE_CHECK([for $am_display_PYTHON script directory],
  [am_cv_python_pythondir],
  [if test "x$prefix" = xNONE
   then
 am_py_prefix=$ac_default_prefix
   else
 am_py_prefix=$prefix
   fi
   am_cv_python_pythondir=`$PYTHON -c "
  $am_python_setup_sysconfig
  if can_use_sysconfig:
  sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
  <---
  else:
  from distutils import sysconfig
  ...

  Here, it can be seen that automake uses purelib path defined by the
  sysconfig module of Python. However, since this path is not included
  in sys.path, and thus the installed package cannot be used:

  $ python3 -c "import sys; print(sys.path)"
  ['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', 
'/usr/lib/python3/dist-packages']

  
  Ubuntu version:14.10

  $ apt-cache policy python3-minimal 
  python3-minimal:
Installed: 3.4.2-1
Candidate: 3.4.2-1
Version table:
   *** 3.4.2-1 0
  500 http://mirror.23media.de/ubuntu/ utopic/main amd64 Packages
  100 /var/lib/dpkg/status

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python3-defaults/+bug/1408092/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp


[Touch-packages] [Bug 362570] Re: Python distutils installs into 'site-packages' instead of 'dist-packages' when a prefix is set

2016-05-02 Thread tripzero
This also needs to be fixed for python3...

** Also affects: python3-defaults (Ubuntu)
   Importance: Undecided
   Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to python3-defaults in
Ubuntu.
https://bugs.launchpad.net/bugs/362570

Title:
  Python distutils installs into 'site-packages' instead of 'dist-
  packages' when a prefix is set

Status in python2.6 package in Ubuntu:
  Fix Released
Status in python3-defaults package in Ubuntu:
  New
Status in python2.6 package in Debian:
  Fix Released

Bug description:
  Binary package hint: python2.6

  When running a setup.py script with distutils in Jaunty like this:

  $ python setup.py install

  modules get installed at '/usr/local/lib/python2.6/dist-packages'.

  In contrast, when running

  $ python setup.py install --prefix=/usr/local

  modules get installed at '/usr/local/lib/python2.6/site-packages'.

  In the same way

  $ python setup.py install --prefix=/usr

  installs modules at '/usr/lib/python2.6/site-packages'.

  The problem is that '/usr/[local/]lib/python2.6/site-packages' is not
  part of the default sys.path .

  Maybe this is intended but I would expect that specifying an install
  prefix like 'usr' or 'usr/local' still installs modules to a place
  which is in Python's default search path - it worked this way in
  Ubuntu <= 8.10 .

  ProblemType: Bug
  Architecture: i386
  DistroRelease: Ubuntu 9.04
  Package: python2.6 2.6.2~rc1-0ubuntu2
  ProcEnviron:
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: python2.6
  Uname: Linux 2.6.28-11-generic i686

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.6/+bug/362570/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp