How to solve AttributeError when importing igraph?
Question: When I import the igraph package in my project, I get an AttributeError. This
only happens in the project directory:

    
    
    [12:34][~]$ python2
    Python 2.7.1 (r271:86832, Apr 15 2011, 12:09:10) 
    [GCC 4.5.2 20110127 (prerelease)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import igraph
    >>> 
    
    [12:34][~]$ cd projectdir/
    [12:34][projectdir]$ python2
    Python 2.7.1 (r271:86832, Apr 15 2011, 12:09:10) 
    [GCC 4.5.2 20110127 (prerelease)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import igraph
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python2.7/site-packages/igraph/__init__.py", line 42, in <module>
        import gzip
      File "/usr/lib/python2.7/gzip.py", line 36, in <module>
        class GzipFile(io.BufferedIOBase):
    AttributeError: 'module' object has no attribute 'BufferedIOBase'
    >>>
    

There is no file igraph.py in the project directory:

    
    
    [12:34][projectdir]$ ls -alR | grep igraph | wc -l
    0
    

And there are no circular imports.

How can I solve this error?


Answer: Most likely, there is a module `io` in `~/projectdir` or one of the paths the
project configures. The gzip module imported by igraph starts with

    
    
    import io
    

and expect the built-in io module, not your project's one. Look for an `io`
directory, or `io.py` or `io.pyc`. It can also help to scrutinize `sys.path`
for any other directories (maybe outside of `~/projectdir`) that might contain
modules named `io`.

