难点和错误

今天看到一个错误,多看了一眼文件名,意识到以前好几个网友的错误症结也在此。

如果您第三方模块正常安装、import进程序正常使用,一运行却出现标题显示的错误,赶紧看一眼您给这段代码起的文件名(排除了拼写错误的情况下哈)。

比如下面这段程序:

import logging

logging.basicConfig(filename='myProgramLog.txt', level = logging.DEBUG,

             format = '%(asctime)s - %(levelname)s - %(message)s')

……

跟书上一模一样的代码

……

logging.debug('End of program')

一运行却出现以下错误信息:

 File "/Users/……/logging.py", line 1, in <module>

   import logging

 File "/Users/……/logging.py", line 2, in <module>

   logging.basicConfig(filename='myProgramLog.txt', level = logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(message)s')

AttributeError: module 'logging' has no attribute 'basicConfig'

错误原因就在于给这段代码起的文件名有问题。引用的模块是logging,给文件起的名字也是logging(logging.py),程序会在您自己的程序(logging.py)里找basicConfig()的,找不到还能不报错?简单说就是您不能在程序文件X.py里测试模块X。

在您的python path(路径)里有其他的程序叫logging.py也不行。

解决办法很简单,给程序改个名就成啦