3

我正在尝试使用该pprint模块来检查 Python 中的一些变量,我可以很高兴地使用交互式 shell 和下面的代码来完成:

import pprint
pp = pprint.PrettyPrinter()
stuff = ['cakes','bread','mead']
pp.pprint(stuff)

但是,当我将上述内容放入pprint.py并使用它运行时python pprint.py,出现错误:

$ python dev/pars/pprint.py 
Traceback (most recent call last):
  File "dev/pars/pprint.py", line 1, in ?
    import pprint
  File "/home/origina2/dev/pars/pprint.py", line 2, in ?
    pp = pprint.PrettyPrinter()
AttributeError: 'module' object has no attribute 'PrettyPrinter'

与交互式 shell 相比,从文件运行 Python 代码时调用模块的方式有什么不同?

4

1 回答 1

10

您将程序命名为 pprint.py,因此在该行import pprint它尝试导入自身。它成功了,但是您的pprint.py 不包含任何名为 PrettyPrinter 的内容。

更改代码的名称。[并且,要清楚,删除任何 pprint.pyc 或 pprint.pyo 文件..]

于 2012-03-11T22:38:37.643 回答