直接运行的wikipedia AttributeError

时间:2014-03-05 19:22:17

标签: python python-2.7 pip wikipedia-api

对于python的wikipedia模块(通过pip安装)

当我使用ipython并执行以下操作时:

import wikipedia
print wikipedia.summary("Wikipedia")

..它工作正常。但是当我在文件中保存它并从shell运行它时:

python filename.py

它显示 AttributeError:'module'对象没有属性'summary'

为什么会出现这种情况?

PS:我后来在'filename.py'中包含以下内容,列出了该模块的范围:

print dir(wikipedia) 

..这给出了:

['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'wikipedia']

在ipython中,dir(维基百科)按预期提供所有名称:

['API_URL', ..(snip) .. 'PageError', 'RATE_LIMIT', .. (snip) ..  '__name__', 'time', 'timedelta']

为什么会这样?

1 个答案:

答案 0 :(得分:5)

10比1你命名了自己的脚本wikipedia.py

import wikipedia然后导入脚本本身,而不是从PyPI安装的包。您可以在dir()输出中看到这一点,导入的模块在命名空间中具有名称wikipedia;自我引用。

您可以通过以下方式确认,或查找其他模块屏蔽您的导入内容:

import wikipedia
print wikipedia.__file__

重命名该文件以阻止它屏蔽库。