Python 属性错误:';模块';对象没有属性';配置';
我是Python新手,正在尝试我的第一个应用程序。为什么我会收到属性消息: 回溯(最近一次呼叫最后一次): 文件“C:\Users\myname\documents\visual studio 2010\Projects\Python应用程序 1\PythonApplication1\RunSikuliOnVM.py“,第97行,在 logging.config.dictConfig(LOG\u DICT\u config\u OnVM) AttributeError:“模块”对象没有属性“配置” 按任意键继续 以下是迄今为止我的代码的一部分:Python 属性错误:';模块';对象没有属性';配置';,python,config,attributeerror,Python,Config,Attributeerror,我是Python新手,正在尝试我的第一个应用程序。为什么我会收到属性消息: 回溯(最近一次呼叫最后一次): 文件“C:\Users\myname\documents\visual studio 2010\Projects\Python应用程序 1\PythonApplication1\RunSikuliOnVM.py“,第97行,在 logging.config.dictConfig(LOG\u DICT\u config\u OnVM) AttributeError:“模块”对象没有属性“配置
import os
import sys
import subprocess
import fnmatch
import datetime
import logging
import logging.handlers
import logging.config
"""===Global Variables==="""
LOGFILE = r"V:/RunTests.log"
LOGDETAILS= r"V:/SikuliScriptDetails.log"
FAILEDTESTS = r"V:/FailedTests.txt"
"""Logging configuration"""
# Dictionary configuration for logging within RunSikuliOnVM.py
LOG_DICT_CONFIG_OnVM = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)-8s %(asctime)s %(module)s %(process)d %(thread)d %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
},
'standard': {
'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
},
'simple': {
'format': '%(asctime)s %(levelname)-8s %(message)s',
'datefmt': '%a, %d %b %Y %H:%M:%S'
}
},
'handlers': {
'console': {
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
'RunTests_Handler': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'level': 'DEBUG',
'formatter': 'simple',
'filename': LOGFILE,
'when':'D',
'interval': 7,
'backupCount':1,
'encoding': None,
'delay': False,
'utc': False,
},
'SikuliScriptDetails_Handler': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'level': 'DEBUG',
'formatter': 'verbose',
'filename':LOGDETAILS,
'when':'D',
'interval': 7,
'backupCount':2,
'encoding': None,
'delay': False,
'utc': False,
},
'FailedTests_Handler': {
'class': 'logging.handlers.TimedRotatingFileHandler',
'level': 'DEBUG',
'formatter': 'standard',
'filename':FAILEDTESTS,
'when':'D',
'interval': 7,
'backupCount':2,
'encoding': None,
'delay': False,
'utc': False,
}
},
'loggers': {
'RunTests_Logger': {
'handlers': ['RunTests_Handler'],
'level': 'DEBUG',
'propagate': False
},
'SikuliScriptDetails_Logger': {
'handlers': ['SikuliScriptDetails_Handler'],
'level': 'DEBUG',
'propagate': False
},
'FailedTests_Logger': {
'handlers': ['FailedTests_Handler'],
'level': 'DEBUG',
'propagate': False
}
}
}
logging.config.dictConfig(LOG_DICT_CONFIG_OnVM)
logfilelogger = logging.getLogger('RunTests_Logger')
logdetailslogger = logging.getLogger('SikuliScriptDetails_Logger')
failedtestslogger = logging.getLogger('FailedTests_Logger')
附言:有些缩进被去掉了…我也是个新手。我也有同样的问题。我删除了我目录中的crud(build和dist文件夹等),然后重新构建了它。答对 了我怀疑,正如Alain所说,PyCharm缓存了一些不需要的东西。只有当文件中不包含
import logging.config
时,我才会发生此错误。这是否包含在您正在运行的代码中?是的。正如您在我的代码段中所看到的,我有三个:import logging import logging.handlers import logging.config
我看到它在该代码段中,但visual studio是否可能正在运行该文件的早期(缓存?)版本?您是否尝试过不使用导入日志记录
?我可以运行它,但我不确定是否调用了顶级模块。哦,我想我明白你所说的运行另一个缓存版本的可能性是什么意思了。您在代码段中看到的这个模块实际上是另一个模块的子进程。父模块中还有导入日志记录
。您认为我应该删除子进程中的一个吗?我不确定您所说的父进程和子进程(两个单独的python模块?parent.py和child.py)是什么意思。如果您尝试在子进程中不进行导入日志记录,会发生什么?错误消息表明它正在尝试在日志模块中使用config属性,而不是logging.config.Oh,因为您拥有的内容超出了您的需要,这些东西将崩溃!如果任何使用PyCharm的人在这里想知道如何清理解释器的缓存,答案是,请检查并让我们知道这是否解决了您的问题。我还刚刚开始了一篇博客文章,进一步调查这个问题,并收集所有关于它的文档。