Public bug reported:

Binary package hint: python2.5

I was investigating why a task which spawned many very simple Python
scripts was taking a substantially time running on my Feisty
installation than on my Dapper installation, and I ran across the
installation of the "apport" hook.  The functionality there is very
cool, and I appreciate it, but I removed it and saw these modules
imported with python -v:

$ python -v
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib/python2.5/site.pyc has bad mtime
import site # from /usr/lib/python2.5/site.py
# can't create /usr/lib/python2.5/site.pyc
# /usr/lib/python2.5/os.pyc matches /usr/lib/python2.5/os.py
import os # precompiled from /usr/lib/python2.5/os.pyc
import posix # builtin
# /usr/lib/python2.5/posixpath.pyc matches /usr/lib/python2.5/posixpath.py
import posixpath # precompiled from /usr/lib/python2.5/posixpath.pyc
# /usr/lib/python2.5/stat.pyc matches /usr/lib/python2.5/stat.py
import stat # precompiled from /usr/lib/python2.5/stat.pyc
# /usr/lib/python2.5/UserDict.pyc matches /usr/lib/python2.5/UserDict.py
import UserDict # precompiled from /usr/lib/python2.5/UserDict.pyc
# /usr/lib/python2.5/copy_reg.pyc matches /usr/lib/python2.5/copy_reg.py
import copy_reg # precompiled from /usr/lib/python2.5/copy_reg.pyc
# /usr/lib/python2.5/types.pyc matches /usr/lib/python2.5/types.py
import types # precompiled from /usr/lib/python2.5/types.pyc
import _types # builtin
# /usr/lib/python2.5/warnings.pyc matches /usr/lib/python2.5/warnings.py
import warnings # precompiled from /usr/lib/python2.5/warnings.pyc
# /usr/lib/python2.5/linecache.pyc matches /usr/lib/python2.5/linecache.py
import linecache # precompiled from /usr/lib/python2.5/linecache.pyc
import encodings # directory /usr/lib/python2.5/encodings
# /usr/lib/python2.5/encodings/__init__.pyc matches 
/usr/lib/python2.5/encodings/__init__.py
import encodings # precompiled from /usr/lib/python2.5/encodings/__init__.pyc
# /usr/lib/python2.5/codecs.pyc matches /usr/lib/python2.5/codecs.py
import codecs # precompiled from /usr/lib/python2.5/codecs.pyc
import _codecs # builtin
# /usr/lib/python2.5/encodings/aliases.pyc matches 
/usr/lib/python2.5/encodings/aliases.py
import encodings.aliases # precompiled from 
/usr/lib/python2.5/encodings/aliases.pyc
# /usr/lib/python2.5/encodings/utf_8.pyc matches 
/usr/lib/python2.5/encodings/utf_8.py
import encodings.utf_8 # precompiled from /usr/lib/python2.5/encodings/utf_8.pyc
Python 2.5.1c1 (release25-maint, Apr  6 2007, 22:02:36) 
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
dlopen("/usr/lib/python2.5/lib-dynload/readline.so", 2);
import readline # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/readline.so


Then, I typed this line:

>>> import apport

and saw the following modules imported:

import apport # directory /var/lib/python-support/python2.5/apport
# /var/lib/python-support/python2.5/apport/__init__.pyc matches 
/var/lib/python-support/python2.5/apport/__init__.py
import apport # precompiled from 
/var/lib/python-support/python2.5/apport/__init__.pyc
# /var/lib/python-support/python2.5/apport/report.pyc matches 
/var/lib/python-support/python2.5/apport/report.py
import apport.report # precompiled from 
/var/lib/python-support/python2.5/apport/report.pyc
# /usr/lib/python2.5/subprocess.pyc matches /usr/lib/python2.5/subprocess.py
import subprocess # precompiled from /usr/lib/python2.5/subprocess.pyc
# /usr/lib/python2.5/traceback.pyc matches /usr/lib/python2.5/traceback.py
import traceback # precompiled from /usr/lib/python2.5/traceback.pyc
dlopen("/usr/lib/python2.5/lib-dynload/select.so", 2);
import select # dynamically loaded from /usr/lib/python2.5/lib-dynload/select.so
import errno # builtin
dlopen("/usr/lib/python2.5/lib-dynload/fcntl.so", 2);
import fcntl # dynamically loaded from /usr/lib/python2.5/lib-dynload/fcntl.so
# /usr/lib/python2.5/pickle.pyc matches /usr/lib/python2.5/pickle.py
import pickle # precompiled from /usr/lib/python2.5/pickle.pyc
import marshal # builtin
# /usr/lib/python2.5/struct.pyc matches /usr/lib/python2.5/struct.py
import struct # precompiled from /usr/lib/python2.5/struct.pyc
dlopen("/usr/lib/python2.5/lib-dynload/_struct.so", 2);
import _struct # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/_struct.so
# /usr/lib/python2.5/re.pyc matches /usr/lib/python2.5/re.py
import re # precompiled from /usr/lib/python2.5/re.pyc
# /usr/lib/python2.5/sre_compile.pyc matches /usr/lib/python2.5/sre_compile.py
import sre_compile # precompiled from /usr/lib/python2.5/sre_compile.pyc
import _sre # builtin
# /usr/lib/python2.5/sre_constants.pyc matches 
/usr/lib/python2.5/sre_constants.py
import sre_constants # precompiled from /usr/lib/python2.5/sre_constants.pyc
# /usr/lib/python2.5/sre_parse.pyc matches /usr/lib/python2.5/sre_parse.py
import sre_parse # precompiled from /usr/lib/python2.5/sre_parse.pyc
dlopen("/usr/lib/python2.5/lib-dynload/binascii.so", 2);
import binascii # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/binascii.so
dlopen("/usr/lib/python2.5/lib-dynload/cStringIO.so", 2);
import cStringIO # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/cStringIO.so
# /usr/lib/python2.5/tempfile.pyc matches /usr/lib/python2.5/tempfile.py
import tempfile # precompiled from /usr/lib/python2.5/tempfile.pyc
# /usr/lib/python2.5/random.pyc matches /usr/lib/python2.5/random.py
import random # precompiled from /usr/lib/python2.5/random.pyc
dlopen("/usr/lib/python2.5/lib-dynload/math.so", 2);
import math # dynamically loaded from /usr/lib/python2.5/lib-dynload/math.so
dlopen("/usr/lib/python2.5/lib-dynload/_random.so", 2);
import _random # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/_random.so
import thread # builtin
# /usr/lib/python2.5/urllib.pyc matches /usr/lib/python2.5/urllib.py
import urllib # precompiled from /usr/lib/python2.5/urllib.pyc
# /usr/lib/python2.5/string.pyc matches /usr/lib/python2.5/string.py
import string # precompiled from /usr/lib/python2.5/string.pyc
dlopen("/usr/lib/python2.5/lib-dynload/strop.so", 2);
import strop # dynamically loaded from /usr/lib/python2.5/lib-dynload/strop.so
# /usr/lib/python2.5/socket.pyc matches /usr/lib/python2.5/socket.py
import socket # precompiled from /usr/lib/python2.5/socket.pyc
dlopen("/usr/lib/python2.5/lib-dynload/_socket.so", 2);
import _socket # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/_socket.so
dlopen("/usr/lib/python2.5/lib-dynload/_ssl.so", 2);
import _ssl # dynamically loaded from /usr/lib/python2.5/lib-dynload/_ssl.so
dlopen("/usr/lib/python2.5/lib-dynload/time.so", 2);
import time # dynamically loaded from /usr/lib/python2.5/lib-dynload/time.so
# /usr/lib/python2.5/urlparse.pyc matches /usr/lib/python2.5/urlparse.py
import urlparse # precompiled from /usr/lib/python2.5/urlparse.pyc
import pwd # builtin
dlopen("/usr/lib/python2.5/lib-dynload/grp.so", 2);
import grp # dynamically loaded from /usr/lib/python2.5/lib-dynload/grp.so
import ctypes # directory /usr/lib/python2.5/ctypes
# /usr/lib/python2.5/ctypes/__init__.pyc matches 
/usr/lib/python2.5/ctypes/__init__.py
import ctypes # precompiled from /usr/lib/python2.5/ctypes/__init__.pyc
dlopen("/usr/lib/python2.5/lib-dynload/_ctypes.so", 2);
import _ctypes # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/_ctypes.so
# /usr/lib/python2.5/ctypes/_endian.pyc matches 
/usr/lib/python2.5/ctypes/_endian.py
import ctypes._endian # precompiled from /usr/lib/python2.5/ctypes/_endian.pyc
# /usr/lib/python2.5/ctypes/util.pyc matches /usr/lib/python2.5/ctypes/util.py
import ctypes.util # precompiled from /usr/lib/python2.5/ctypes/util.pyc
# /usr/lib/python2.5/fnmatch.pyc matches /usr/lib/python2.5/fnmatch.py
import fnmatch # precompiled from /usr/lib/python2.5/fnmatch.pyc
import xml # directory /usr/lib/python2.5/xml
# /usr/lib/python2.5/xml/__init__.pyc matches /usr/lib/python2.5/xml/__init__.py
import xml # precompiled from /usr/lib/python2.5/xml/__init__.pyc
import _xmlplus # directory /usr/lib/python2.5/site-packages/_xmlplus
# /usr/lib/python2.5/site-packages/_xmlplus/__init__.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/__init__.py
import _xmlplus # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/__init__.pyc
import xml.dom # directory /usr/lib/python2.5/site-packages/_xmlplus/dom
# /usr/lib/python2.5/site-packages/_xmlplus/dom/__init__.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/__init__.py
import xml.dom # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/__init__.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/DOMImplementation.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/DOMImplementation.py
import xml.dom.DOMImplementation # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/DOMImplementation.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/Range.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/Range.py
import xml.dom.Range # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/Range.pyc
import xml.dom.html # directory 
/usr/lib/python2.5/site-packages/_xmlplus/dom/html
# /usr/lib/python2.5/site-packages/_xmlplus/dom/html/__init__.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/html/__init__.py
import xml.dom.html # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/html/__init__.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.pyc 
matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.py
import xml.dom.html.HTMLDOMImplementation # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/MessageSource.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/MessageSource.py
import xml.dom.MessageSource # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/MessageSource.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/FtCore.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/FtCore.py
import xml.FtCore # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/FtCore.pyc
# /usr/lib/python2.5/gettext.pyc matches /usr/lib/python2.5/gettext.py
import gettext # precompiled from /usr/lib/python2.5/gettext.pyc
# /usr/lib/python2.5/locale.pyc matches /usr/lib/python2.5/locale.py
import locale # precompiled from /usr/lib/python2.5/locale.pyc
dlopen("/usr/lib/python2.5/lib-dynload/_locale.so", 2);
import _locale # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/_locale.so
dlopen("/usr/lib/python2.5/lib-dynload/operator.so", 2);
import operator # dynamically loaded from 
/usr/lib/python2.5/lib-dynload/operator.so
# /usr/lib/python2.5/copy.pyc matches /usr/lib/python2.5/copy.py
import copy # precompiled from /usr/lib/python2.5/copy.pyc
# /usr/lib/python2.5/encodings/latin_1.pyc matches 
/usr/lib/python2.5/encodings/latin_1.py
import encodings.latin_1 # precompiled from 
/usr/lib/python2.5/encodings/latin_1.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/domreg.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/domreg.py
import xml.dom.domreg # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/domreg.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/minicompat.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/minicompat.py
import xml.dom.minicompat # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/minicompat.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/minidom.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/minidom.py
import xml.dom.minidom # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/minidom.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/xmlbuilder.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/xmlbuilder.py
import xml.dom.xmlbuilder # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/xmlbuilder.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/dom/NodeFilter.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/dom/NodeFilter.py
import xml.dom.NodeFilter # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/dom/NodeFilter.pyc
import xml.parsers # directory /usr/lib/python2.5/site-packages/_xmlplus/parsers
# /usr/lib/python2.5/site-packages/_xmlplus/parsers/__init__.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/parsers/__init__.py
import xml.parsers # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/parsers/__init__.pyc
# /usr/lib/python2.5/site-packages/_xmlplus/parsers/expat.pyc matches 
/usr/lib/python2.5/site-packages/_xmlplus/parsers/expat.py
import xml.parsers.expat # precompiled from 
/usr/lib/python2.5/site-packages/_xmlplus/parsers/expat.pyc
dlopen("/usr/lib/python2.5/site-packages/_xmlplus/parsers/pyexpat.so", 2);
import xml.parsers.pyexpat # dynamically loaded from 
/usr/lib/python2.5/site-packages/_xmlplus/parsers/pyexpat.so
# /var/lib/python-support/python2.5/problem_report.pyc matches 
/var/lib/python-support/python2.5/problem_report.py
import problem_report # precompiled from 
/var/lib/python-support/python2.5/problem_report.pyc
dlopen("/usr/lib/python2.5/lib-dynload/bz2.so", 2);
import bz2 # dynamically loaded from /usr/lib/python2.5/lib-dynload/bz2.so
dlopen("/usr/lib/python2.5/lib-dynload/zlib.so", 2);
import zlib # dynamically loaded from /usr/lib/python2.5/lib-dynload/zlib.so
# /usr/lib/python2.5/base64.pyc matches /usr/lib/python2.5/base64.py
import base64 # precompiled from /usr/lib/python2.5/base64.pyc
# /usr/lib/python2.5/gzip.pyc matches /usr/lib/python2.5/gzip.py
import gzip # precompiled from /usr/lib/python2.5/gzip.pyc
import email # directory /usr/lib/python2.5/email
# /usr/lib/python2.5/email/__init__.pyc matches 
/usr/lib/python2.5/email/__init__.py
import email # precompiled from /usr/lib/python2.5/email/__init__.pyc
import email.mime # directory /usr/lib/python2.5/email/mime
# /usr/lib/python2.5/email/mime/__init__.pyc matches 
/usr/lib/python2.5/email/mime/__init__.py
import email.mime # precompiled from /usr/lib/python2.5/email/mime/__init__.pyc
# /usr/lib/python2.5/email/mime/multipart.pyc matches 
/usr/lib/python2.5/email/mime/multipart.py
import email.mime.multipart # precompiled from 
/usr/lib/python2.5/email/mime/multipart.pyc
# /usr/lib/python2.5/email/mime/base.pyc matches 
/usr/lib/python2.5/email/mime/base.py
import email.mime.base # precompiled from /usr/lib/python2.5/email/mime/base.pyc
# /usr/lib/python2.5/email/message.pyc matches 
/usr/lib/python2.5/email/message.py
import email.message # precompiled from /usr/lib/python2.5/email/message.pyc
# /usr/lib/python2.5/uu.pyc matches /usr/lib/python2.5/uu.py
import uu # precompiled from /usr/lib/python2.5/uu.pyc
# /usr/lib/python2.5/email/charset.pyc matches 
/usr/lib/python2.5/email/charset.py
import email.charset # precompiled from /usr/lib/python2.5/email/charset.pyc
# /usr/lib/python2.5/email/base64mime.pyc matches 
/usr/lib/python2.5/email/base64mime.py
import email.base64mime # precompiled from 
/usr/lib/python2.5/email/base64mime.pyc
# /usr/lib/python2.5/email/utils.pyc matches /usr/lib/python2.5/email/utils.py
import email.utils # precompiled from /usr/lib/python2.5/email/utils.pyc
# /usr/lib/python2.5/email/_parseaddr.pyc matches 
/usr/lib/python2.5/email/_parseaddr.py
import email._parseaddr # precompiled from 
/usr/lib/python2.5/email/_parseaddr.pyc
# /usr/lib/python2.5/quopri.pyc matches /usr/lib/python2.5/quopri.py
import quopri # precompiled from /usr/lib/python2.5/quopri.pyc
# /usr/lib/python2.5/email/encoders.pyc matches 
/usr/lib/python2.5/email/encoders.py
import email.encoders # precompiled from /usr/lib/python2.5/email/encoders.pyc
# /usr/lib/python2.5/email/quoprimime.pyc matches 
/usr/lib/python2.5/email/quoprimime.py
import email.quoprimime # precompiled from 
/usr/lib/python2.5/email/quoprimime.pyc
# /usr/lib/python2.5/email/errors.pyc matches /usr/lib/python2.5/email/errors.py
import email.errors # precompiled from /usr/lib/python2.5/email/errors.pyc
# /usr/lib/python2.5/email/iterators.pyc matches 
/usr/lib/python2.5/email/iterators.py
import email.iterators # precompiled from /usr/lib/python2.5/email/iterators.pyc
# /usr/lib/python2.5/email/mime/text.pyc matches 
/usr/lib/python2.5/email/mime/text.py
import email.mime.text # precompiled from /usr/lib/python2.5/email/mime/text.pyc
# /usr/lib/python2.5/email/mime/nonmultipart.pyc matches 
/usr/lib/python2.5/email/mime/nonmultipart.py
import email.mime.nonmultipart # precompiled from 
/usr/lib/python2.5/email/mime/nonmultipart.pyc
# /usr/lib/python2.5/unittest.pyc matches /usr/lib/python2.5/unittest.py
import unittest # precompiled from /usr/lib/python2.5/unittest.pyc
# /var/lib/python-support/python2.5/apport/fileutils.pyc matches 
/var/lib/python-support/python2.5/apport/fileutils.py
import apport.fileutils # precompiled from 
/var/lib/python-support/python2.5/apport/fileutils.pyc
# /usr/lib/python2.5/glob.pyc matches /usr/lib/python2.5/glob.py
import glob # precompiled from /usr/lib/python2.5/glob.pyc
# /var/lib/python-support/python2.5/apport/packaging_impl.pyc matches 
/var/lib/python-support/python2.5/apport/packaging_impl.py
import apport.packaging_impl # precompiled from 
/var/lib/python-support/python2.5/apport/packaging_impl.pyc
# /usr/lib/python2.5/shutil.pyc matches /usr/lib/python2.5/shutil.py
import shutil # precompiled from /usr/lib/python2.5/shutil.pyc
>>> 

This is a substantial and unnecessary overhead for a hook which will be
invoked only if the process exits with an error.  While quite a few
Python programs import a huge number of modules, some are tuned to be as
conservative as possible about importing for performance reasons; that
should be respected by the system installation.

The functionality need not be lost, since sys.excepthook should instead
be set to a one-line function which, if apport were not yet imported,
imported it.

** Affects: python2.5 (Ubuntu)
     Importance: Undecided
         Status: Unconfirmed

-- 
apport exception hook negatively impacts startup of python
https://bugs.launchpad.net/bugs/105764
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[EMAIL PROTECTED]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to