Python 心理变态错误:AttributeError:module';日志记录';没有属性';getLogger';
我是Python和Pscyhopy新手,每当我尝试运行实验时,它都会给我以下错误:Python 心理变态错误:AttributeError:module';日志记录';没有属性';getLogger';,python,psychopy,Python,Psychopy,我是Python和Pscyhopy新手,每当我尝试运行实验时,它都会给我以下错误: File "/private/var/folders/nb/k9sz30gj29l_7d8l6tmbcxhr0000gn/T/AppTranslocation/F9CCC296-B2DF-4D05-A6AE-F9DE0928FE0E/d/PsychoPy3.app/Contents/Resources/lib/python3.6/lib2to3/pgen2/driver.py", line 120, in loa
File
"/private/var/folders/nb/k9sz30gj29l_7d8l6tmbcxhr0000gn/T/AppTranslocation/F9CCC296-B2DF-4D05-A6AE-F9DE0928FE0E/d/PsychoPy3.app/Contents/Resources/lib/python3.6/lib2to3/pgen2/driver.py", line 120, in load_grammar
logger = logging.getLogger()
AttributeError: module 'logging' has no attribute 'getLogger'
我已经确保没有任何名为logging.py的文件,但它仍然不会运行。但演示运行良好 每当存在循环导入或任何其他没有getLogger的日志记录模块时,就会发生此类问题。 虽然您说您搜索了任何命名为logging.py的文件,但我仍然认为您的项目在某处有文件名logging.py。如果您正在处理的当前文件名为logging.py,请更改它,否则将出现循环导入错误。 尝试搜索python库路径如果什么都不起作用,那么剩下的唯一选项就是更改版本
希望这能有所帮助。这个问题的一个可能解决方案(取决于具体细节)与从何处运行代码以及如何更改代码有关。例如: 如果我有一个名为
test
的小实用程序,它是从命令行运行的(它以一个“”行开始,指定一些python或其他),我将它放在python模块的目录中(比如说pythonX.Y/site packages/whatever
),该模块中又有一个日志记录
模块(即,logging.py
或logging/\uuuu init\uuuuu.py
目录层次结构中的某个地方有一个whatever
目录,然后尝试运行它(比如说,/test
,再次,从whatever
目录中,或者甚至是同一网站包中的其他地方,我不确定),我将得到您描述的错误
但是,如果我将[0]完全相同的文件从pythonX.Y/site packages/which
目录中复制出来,并尝试从其他地方运行它(例如,我将其复制到我的主目录,并作为~/test
运行)反之亦然:如果我将~
中的工作脚本复制到pythonX.Y/site packages/which
中,它就会崩溃
这可能也适用于除shebang脚本之外的各种其他调用方式(例如,python-m whatever…
或诸如此类)…一句话:如果在您试图运行代码的文件所在的位置附近有一个日志记录
模块,那么python很有可能尝试导入该版本的日志记录
,而不是通常的系统版本
对于模块所有者,我建议考虑将模块的日志
重命名为其他内容,以避免给用户造成此问题
对于某事物的普通用户,只需注意调用代码的位置(包括文件在文件系统中的物理位置,相对于可能导入的各种模块)
希望这能帮助一些人克服这个错误!这让我有点困惑,这是一个适合我的解决方案
[0]注意:仅仅创建一个…是不够的,尽管如果从另一个方向创建,它可能会很有用;无论哪种方式,python都会找到常规文件的绝对路径,本分析的其余部分适用于该文件所在的任何位置:在模块内,获取模块的日志记录;在模块外,获取系统日志记录您是否可以运行导入日志记录
,打印(日志记录.\uuuuu文件\uuuuu)
?您的项目中是否有一个名为logging
的模块或包?我从其他回购中复制了我的logging.py
,它工作得很好。不知道是什么让这个回购与AttributeError
截然不同。只需重命名为log.py
,问题就解决了……感觉不明白什么是JU它可能不是logging.py
,而是logging/\uuuu init\uuuu.py
。。。