my downstream package suffers from this: https://github.com/opencog
/link-grammar/issues/530

** Bug watch added: github.com/opencog/link-grammar/issues #530
   https://github.com/opencog/link-grammar/issues/530

-- 
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

Reply via email to