Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 心理变态错误:AttributeError:module';日志记录';没有属性';getLogger';_Python_Psychopy - Fatal编程技术网

Python 心理变态错误:AttributeError:module';日志记录';没有属性';getLogger';

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

我是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 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
。。。