[8917] in athena10

home help back first fref pref prev next nref lref last post

[Debathena] #1126: /usr/athena/bin/python breaks with /usr/athena

daemon@ATHENA.MIT.EDU (Debathena Trac)
Wed Apr 4 15:03:18 2012

MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
From: "Debathena Trac" <debathena@MIT.EDU>
Cc: debathena@MIT.EDU
To: andersk@MIT.EDU
Date: Wed, 04 Apr 2012 19:03:14 -0000
Reply-To: 
Message-ID: <043.0443c2a2fea9bf557031071274fe9f7f@mit.edu>
Content-Transfer-Encoding: 8bit

#1126: /usr/athena/bin/python breaks with /usr/athena symlink
------------------------+--------------------------------
    Reporter:  andersk  |      Owner:
        Type:  defect   |     Status:  new
    Priority:  normal   |  Milestone:  The Distant Future
   Component:  --       |   Keywords:
Upstream bug:           |
------------------------+--------------------------------
 {{{
 debathena / python / jdreed  2011-09-21 16:42:37  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     WTF?

     $ python -V
     Python 2.7.1+

     $ python -c 'import platform;print platform.python_version()'
     2.7.1+

     $ /usr/athena/bin/python -V
     Python 2.7.1+

     $ /usr/athena/bin/python -c 'import platform;print
 platform.python_version()'
     Traceback (most recent call last):
     File "/usr/athena/lib/python2.7/site.py", line 562, in <module>
       main()
     File "/usr/athena/lib/python2.7/site.py", line 544, in main
       known_paths = addusersitepackages(known_paths)
     File "/usr/athena/lib/python2.7/site.py", line 271, in
 addusersitepackages
       user_site = getusersitepackages()
     File "/usr/athena/lib/python2.7/site.py", line 246, in
 getusersitepackages
       user_base = getuserbase() # this will also set USER_BASE
     File "/usr/athena/lib/python2.7/site.py", line 236, in getuserbase
       USER_BASE = get_config_var('userbase')
     File "/usr/athena/lib/python2.7/sysconfig.py", line 558, in
 get_config_var
       return get_config_vars().get(name)
     File "/usr/athena/lib/python2.7/sysconfig.py", line 457, in
 get_config_vars
       _init_posix(_CONFIG_VARS)
     File "/usr/athena/lib/python2.7/sysconfig.py", line 310, in
 _init_posix
       raise IOError(msg)
     IOError: invalid Python installation: unable to open
 /usr/athena/local/lib/python2.7/config/Makefile (No such file or
 directory)
 debathena / python / jdreed  2011-09-21 16:43:24  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     (this is on, like, natty)
 debathena / python / andersk  2011-09-21 16:45:04  (Anders Kaseorg)
     Haha, /usr/athena.
 debathena / python / jdreed  2011-09-21 16:44:21  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     so not the point
 debathena / python / andersk  2011-09-21 16:49:02  (Anders Kaseorg)
     A workaround is python -S.
 debathena / python / jdreed  2011-09-21 16:52:59  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     Wait, what about /usr/athena is causing it to lose?  If I symlink
     python into /usr/local/bin or even /opt/bin it's fine
 debathena / python / andersk  2011-09-21 16:56:18  (Anders Kaseorg)
     python being symlinked is different from its containing directory
     being symlinked.
 debathena / python / andersk  2011-09-21 17:01:31  (Anders Kaseorg)
     From my sysconfig.py (on oneiric, which has the same problem):

     def _get_makefile_filename():
         if _PYTHON_BUILD:
             return os.path.join(_PROJECT_BASE, "Makefile")
         return
 os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1),
 "config" + (sys.pydebug and "_d" or ""), "Makefile")

     and /usr/athena/local doesn’t match that.
 debathena / python / jdreed  2011-09-21 17:02:17  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     I don't, then, understand why this still works:
     jdreed@infinite-loop:~$ sudo ln -nsf /usr /opt/usr
     [sudo] password for jdreed:
     jdreed@infinite-loop:~$ /opt/usr/bin/python -c 'import platform;print
 platform.python_version()'
     2.7.1+
 debathena / python / andersk  2011-09-21 17:03:51  (Anders Kaseorg)
     Because /opt/usr/local does match that.
 debathena / python / jdreed  2011-09-21 17:03:54  (This zephyr does not
 necessarily reflect the views of IS&T, MIT, its)
     Hrm.  We should probably still care somehow, since we just broke our
     compatibility layer without telling anyone
 debathena / python / andersk  2011-09-21 17:05:11  (Anders Kaseorg)
     $ sudo ln -nsf /usr /opt/usr
     $ /opt/usr/bin/python -c ''
     $ sudo ln -nsf /usr /opt/rsu
     $ /opt/rsu/bin/python -c ''
     …
     IOError: invalid Python installation: unable to open
 /opt/rsu/local/lib/python2.7/config/Makefile (No such file or directory)
 debathena / python / andersk  2011-09-21 17:08:55  (Anders Kaseorg)
     Well, uh, you can read debian/patches/distutils-install-layout.diff,
     cry, and file a hilarious Debian bug?
 debathena / python / andersk  2011-09-21 17:13:06  (Anders Kaseorg)
     It looks like it would work if /usr/athena/bin was the symlink
     instead of /usr/athena?
 }}}

-- 
Ticket URL: <http://athena10.mit.edu/trac/ticket/1126>
Debathena <http://debathena.mit.edu>
MIT Debathena Project


home help back first fref pref prev next nref lref last post