Trying to import namedtuple results in import error leading to downstream problems.

Bug #997046 reported by Emlyn Clay
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
python-defaults (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

1. Open python.
$ python

2. Issue the command
import collections.namedtuple

3. Results in

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "collections.py", line 20, in <module>
    import numpy as np
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 40, in <module>
    from numpy.testing import Tester
  File "/usr/local/lib/python2.7/dist-packages/numpy/testing/__init__.py", line 8, in <module>
    from unittest import TestCase
  File "/usr/lib/python2.7/unittest/__init__.py", line 58, in <module>
    from .result import TestResult
  File "/usr/lib/python2.7/unittest/result.py", line 9, in <module>
    from . import util
  File "/usr/lib/python2.7/unittest/util.py", line 2, in <module>
    from collections import namedtuple, OrderedDict
ImportError: cannot import name namedtuple
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python2.7/dist-packages/apport/__init__.py", line 1, in <module>
    from apport.report import Report
  File "/usr/lib/python2.7/dist-packages/apport/report.py", line 12, in <module>
    import subprocess, tempfile, os.path, urllib, re, pwd, grp, os
  File "/usr/lib/python2.7/urllib.py", line 32, in <module>
    from urlparse import urljoin as basejoin
  File "/usr/lib/python2.7/urlparse.py", line 111, in <module>
    from collections import namedtuple
  File "collections.py", line 20, in <module>
    import numpy as np
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 30, in <module>
    __all__ += numeric.__all__
NameError: name 'numeric' is not defined

Original exception was:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "collections.py", line 20, in <module>
    import numpy as np
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
    import add_newdocs
  File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
    from type_check import *
  File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 40, in <module>
    from numpy.testing import Tester
  File "/usr/local/lib/python2.7/dist-packages/numpy/testing/__init__.py", line 8, in <module>
    from unittest import TestCase
  File "/usr/lib/python2.7/unittest/__init__.py", line 58, in <module>
    from .result import TestResult
  File "/usr/lib/python2.7/unittest/result.py", line 9, in <module>
    from . import util
  File "/usr/lib/python2.7/unittest/util.py", line 2, in <module>
    from collections import namedtuple, OrderedDict
ImportError: cannot import name namedtuple

Other python package information:

2.7.3-0ubuntu2 (/var/lib/apt/lists/gb.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/gb.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages
                  MD5: d1ea97f755d8153fe116080f2352859b

+ numpy - 1.6.1 - active development (/usr/local/lib/python2.7/dist-packages)

+ Numeric should be deprecated and isn't listed.

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: python 2.7.3-0ubuntu2
ProcVersionSignature: Ubuntu 3.2.0-24.37-generic 3.2.14
Uname: Linux 3.2.0-24-generic x86_64
NonfreeKernelModules: fglrx
ApportVersion: 2.0.1-0ubuntu7
Architecture: amd64
Date: Wed May 9 11:36:12 2012
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)
SourcePackage: python-defaults
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Emlyn Clay (emlyn-seahermit) wrote :
Revision history for this message
Emlyn Clay (emlyn-seahermit) wrote :

Please ignore the line 'InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release i386 (20111012)' information - I used a multi-boot USB and this is an artefact from that.

Revision history for this message
Julian Taylor (jtaylor) wrote :

namedtuple is no package, you import it like this:
import collections
collections.namedtuple("a", "b")

the traceback is a local issue:
 File "collections.py", line 20, in <module>
     import numpy as np
   File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>

you have a collections.py in your working dir that gets imported instead of the system collections
that file then again imports a local numpy, not the system one
please be careful when filing bugs on this system, make sure its not a local installation interfering with the packaged ones

Changed in python-defaults (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.