如何在导入igraph时解决AttributeError? [英] How to solve AttributeError when importing igraph?

查看:647
本文介绍了如何在导入igraph时解决AttributeError?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在项目中导入igraph包时,我得到一个AttributeError。这只发生在项目目录中:

  [12:34] [〜] $ python2 
Python 2.7.1 (r271:86832,2011年4月15日,12:09:10)
[GCC 4.5.2 20110127(预发行)] on linux2
输入help,copyright,credits或license 了解更多信息。
>>> import igraph
>>>

[12:34] [〜] $ cd projectdir /
[12:34] [projectdir] $ python2
Python 2.7.1(r271:86832,2011年4月15日) ,12:09:10)
[GCC 4.5.2 20110127(预发行)] on linux2
输入help,copyright,credits或license以获取更多信息。
>>> import igraph
Traceback(最近一次调用最后一次):
文件< stdin>,第1行,< module>
文件/usr/lib/python2.7/site-packages/igraph/__init__.py,第42行,< module>
import gzip
文件/usr/lib/python2.7/gzip.py,第36行,< module>
class GzipFile(io.BufferedIOBase):
AttributeError:'module'对象没有属性'BufferedIOBase'
>>>

项目目录中没有文件igraph.py:

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

并且没有循环导入。



如何解决此错误?

解决方案

最有可能的是,模块 io 〜/ projectdir 或项目配置的其中一个路径中。 igraph导入的gzip模块以

  import io 


并期待内置的io模块,而不是你的项目。查找 io 目录,或 io.py io.pyc 。对于可能包含的任何其他目录(可能在〜/ projectdir 之外),它还可以帮助仔细检查 sys.path 模块名为 io


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?

解决方案

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.

这篇关于如何在导入igraph时解决AttributeError?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆