尝试在python中导入glog时获取UnparsedFlagAccessError

2024-04-29 09:35:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python代码中使用glog,当我试图导入时,它抛出以下错误:

/usr/local/lib/python2.7/dist-packages/glog.py:171: RuntimeWarning: 
Trying to access flag verbosity before flags were parsed. This will raise 
an exception in the future. 
setLevel(FLAGS.verbosity)
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/glog.py", line 171, in 
<module>
setLevel(FLAGS.verbosity)
File "/usr/local/lib/python2.7/dist-packages/gflags/flagvalues.py", line 
390, in __getattr__
traceback.print_stack()
E0602 09:45:07.674463 4695 flagvalues.py:399] Trying to access flag 
verbosity before flags were parsed.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gflags/flagvalues.py", line 
391, in __getattr__
raise exceptions.UnparsedFlagAccessError(error_message)
UnparsedFlagAccessError: Trying to access flag verbosity before
flags were parsed.

我的代码如下。在

^{pr2}$

我在网上搜索过,但是没有任何关于python版本glog的信息。我认为这个错误和gflags和glog有关。谁能解释一下出了什么问题吗?在


Tags: toinpyaccesslibpackagesusrlocal
1条回答
网友
1楼 · 发布于 2024-04-29 09:35:35

我也有同样的问题。在检查了代码之后,似乎是glog的某种bug。在

import glog被截获时,它假设gflags.GFLAGS已被启动,并尝试读取{},但在大多数情况下,它实际上不保证被初始化。在

例如,以下代码将引发异常:

import gflags
import glog
import sys

if __name__ == "__main__":
    gflags.FLAGS(sys.argv)
    # do something.

因为当import glog被拦截时,它读取FLAGS.vebosity,但是由于glfags.FLAGS(sys.argv)还没有执行,所以从{}读取将失败。在

因此,我们必须确保在初始化GFLAGS后拦截import gflags,我能想到的唯一解决方案是将import glog放到另一个文件中,而不是主py脚本中。在

例如,在主脚本中:

^{pr2}$

相关问题 更多 >