Python 为什么我的代码在交互式shell中工作,但在从文件运行时却不工作?

Python 为什么我的代码在交互式shell中工作,但在从文件运行时却不工作?,python,python-module,pprint,python-interactive,Python,Python Module,Pprint,Python Interactive,我正在尝试使用pprint模块来检查Python中的一些变量,我可以很高兴地使用交互式shell和下面的代码来完成这项工作: import pprint pp = pprint.PrettyPrinter() stuff = ['cakes','bread','mead'] pp.pprint(stuff) 但是,当我将上述内容放入pprint.py并使用pythonPrint.py运行它时,我得到了错误: $ python dev/pars/pprint.py Traceback (mos

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

import pprint
pp = pprint.PrettyPrinter()
stuff = ['cakes','bread','mead']
pp.pprint(stuff)
但是,当我将上述内容放入
pprint.py
并使用
pythonPrint.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代码时调用模块的方式有什么不同?

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


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

我将您的代码准确地复制到一个名为
test.py
的文件中,它运行起来没有问题。其他python模块有问题吗?也许重新安装会有所帮助?好的,尝试将其复制到pprint.py中,运行它,然后重命名文件并再次运行:)