直接运行的wikipedia AttributeError

arc*_*ife 1 python pip wikipedia-api python-2.7

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

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

import wikipedia
print wikipedia.summary("Wikipedia")
Run Code Online (Sandbox Code Playgroud)

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

python filename.py
Run Code Online (Sandbox Code Playgroud)

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

为什么会这样?

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

print dir(wikipedia) 
Run Code Online (Sandbox Code Playgroud)

..这给了:

['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'wikipedia']
Run Code Online (Sandbox Code Playgroud)

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

['API_URL', ..(snip) .. 'PageError', 'RATE_LIMIT', .. (snip) ..  '__name__', 'time', 'timedelta']
Run Code Online (Sandbox Code Playgroud)

为什么这样?

Mar*_*ers 5

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

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

您可以确认这一点,或者找到其他模块屏蔽您的导入,包括:

import wikipedia
print wikipedia.__file__
Run Code Online (Sandbox Code Playgroud)

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