[Bug 621348] Re: .pth and .egg-info files in /usr/lib/pymodules/python2.6 are not being processed
Bug Watch Updater
621348 at bugs.launchpad.net
Tue Jul 2 12:48:11 UTC 2013
** Changed in: python2.6 (Debian)
Status: New => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python2.6 in Ubuntu.
https://bugs.launchpad.net/bugs/621348
Title:
.pth and .egg-info files in /usr/lib/pymodules/python2.6 are not being
processed
Status in “python2.6” package in Ubuntu:
New
Status in “python2.6” package in Debian:
Fix Released
Bug description:
Binary package hint: python2.6
On Lucid, .pth and .egg-info files in /usr/lib/pymodules/python2.6 are
not being processed. It's because of how it is included, with a .pth
file, IIRC.
This means that, for instance, bugs in
repoze.what-1.0.8-py2.6-nspkg.pth are not triggered. It means that all
of the .egg-info and .pth files in pymodules are pointless. That in
turn means that any namespace packages there don't play nicely with
the new zc.buildout because the .egg-info files are not processed.
(I've carefully modified zc.buildout to mimic the exact behavior of
site.py so that the repoze problem is not triggered; it would be
really nice if the fix, whatever it is, still worked with my
zc.buildout release.)
I have other examples, but the best quick instructions I have to dupe
ATM are these. (1) apt install repoze.what. (2) It is already broken,
but just to make sure, edit
/usr/lib/pymodules/python2.6/repoze.what-1.0.8-py2.6-nspkg.pth
(==/usr/share/pyshared/repoze.what-1.0.8-py2.6-nspkg.pth) to look
horrible (my example: http://pastebin.ubuntu.com/481083/ ). (3) start
python, and note that there are no complaints (they would be of the
"site.py had problems, use -v for details" variety).
I'm pretty sure I see why this happens. The pymodules directory is
added with a .pth file. That goes into lines 152-154 of site.py, in
the addpackage module. For reference, that's the last three lines of
this snippet.
for line in f:
if line.startswith("#"):
continue
if line.startswith(("import ", "import\t")):
exec line
continue
line = line.rstrip()
dir, dircase = makepath(sitedir, line)
if not dircase in known_paths and os.path.exists(dir):
sys.path.append(dir)
known_paths.add(dircase)
That adds the path to sys.path but does *not* call addsitedir on it,
so reading the directory for special files is not recursive. I
*think* that's a Python behavior, so I'd prefer not to change it
locally, myself.
My naive thought is that pymodules ought to be included within
site.addsitepackages, the way the rest of the directories like this
are, but maybe that's a bad idea for some reason.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.6/+bug/621348/+subscriptions
More information about the foundations-bugs
mailing list