- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案: python & suds “ImportError: cannot import name getLogger”
但是我好像遇到了一个无法用答案解释的情况。
详情如下:
我有一个名为 logging.py 的文件。代码如下:
import sys
print(sys.path)
from logging import getLogger
我知道如果我运行 python3 logging.py ,它不会工作。因为 python 将尝试在 sys.path 中搜索目录以查找日志记录模块。这样,sys.path[0] 将是脚本的目录,这样 python 将直接从脚本的目录加载模块日志记录,而不是搜索 python 标准库。
这是输出:
# chuck @ LAPTOP-RN92LIAI in ~/editable_package/test_py [12:01:43]
$ python3 logging.py
['/home/chuck/editable_package/test_py', '/usr/lib/python36.zip',
'/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload',
'/home/chuck/.local/lib/python3.6/site-packages',
'/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
.....
ImportError: cannot import name 'getLogger'
所以我尝试将文件作为 python3 -m logging 运行,我预计 sys.path 没有模块的目录,因此 python 将在 sys.path 中搜索标准库的目录。
然而,结果发现 sys.path 是预期的,但 python 搜索的模块不是:
:!python3 -m logging
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-
dynload', '/home/chuck/.local/lib/python3.6/site-packages',
'/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
...
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/chuck/editable_package/test_py/logging.py", line 3, in <module>
from logging import getLogger
File "/home/chuck/editable_package/test_py/logging.py", line 3, in
<module>
from logging import getLogger
ImportError: cannot import name 'getLogger'
我对此感到困惑。只是不知道为什么。任何建议将不胜感激。
最佳答案
问题是您将文件命名为“logging.py”,这使得它看起来像 Python 原生的“logging”模块。当您运行该文件时,它会尝试从自身导入 getLogger,但这不起作用,因为它未在此处定义。重命名您的文件,它将起作用。
关于python - 导入错误 : cannot import name 'getLogger' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127794/
我正在努力提高我的 Java 优化技能。为了实现这一目标,我制作了一个旧程序,我正在尽最大努力让它变得更好。在这个程序中,我使用 SL4J 进行日志记录。为了获得记录器,我做了: private st
我正在尝试使用 log4j2 在 Java 中创建一个简单的日志记录应用程序。 看起来是这样的: package com.company; import java.io.IOException; im
我创建了一个扩展 logging.Logger 的 CustomLogger。我正在尝试使用 getLogger 来获取我的记录器实例化。这是我的代码: import os import sys im
我尝试将 getLogger 放在模块级别。然而,它也有一些缺点。这是我的例子: from logging.handlers import TimeRotatingFileHandler log_mo
在我的模块我有这个: import logging import my_module_name.log log = logging.getLogger(__name__) 这工作正常,但我希望能够覆盖
如何获取给定 python 实例的日志文件路径 logging调用 getLogger() 后的对象? 我的 python 应用程序在主 python 脚本中设置日志记录如下。 import logg
我将 copy-webpack-plugin 从 4.6.0 升级为 6.0.2我改变了我的代码 plugins: [ new CopyWebpackPlugin([{ from:
我设置了一个基本的 Java 程序。我正在关注这个tutorial并有这个确切的代码: import org.slf4j.Logger; import org.slf4j.LoggerFactory;
我想知道如何获取我的自定义记录器通过log4j的LogManger.getLogger()方法。 我几乎确定我的项目不需要自定义记录器并使用默认的 log4j 记录器。 但是,如有必要,我想使用自定义
我已经阅读了大量帖子和文档(在本网站和其他地方),指出 SFL4J 日志记录的推荐模式是: public class MyClass { final static Logger logger
为什么大多数 log4net 示例通过这样做来获取类的记录器: private static ILog logger = LogManager.GetLogger( System.Re
这个问题在这里已经有了答案: python & suds “ImportError: cannot import name getLogger” 但是我好像遇到了一个无法用答案解释的情况。 详情如下:
当我执行以下代码时,日志事件仅记录一次。我正在使用 log4j2 记录器。但是当我使用 java.util.logger 时,所有 3 个日志事件均已成功发布。 public class Tes
稍后编辑:(为什么我认为这与 here 的情况不同) 所有操作都在一个实例方法中完成,进进出出,我处理的每个文件一次。我提取的本地字段(而不是内联)没有在其他任何地方使用,所以 GC 在迭代后无论如何
要在 Java 中使用记录器,现在我使用如下代码: Logger logger = Logger.getLogger("MyLog"); FileHandler fh; try { // This
来自logging howto对于 Python 2.7(我的重点): A good convention to use when naming loggers is to use a module-
我有这段代码要测试: log = logging.getLogger(__name__) class A(object): def __init__(self): log.de
Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依log4j: LogFactory来自common-logging包。如果
我知道应该通过 LogManager.getLogger() 创建一个 log4j 记录器实例,它会执行一些反射魔法来检测调用类,因此名称对于特定的日志级别配置很重要。但是,如果我不喜欢手动创建记录器
我正在处理一些遗留代码,其中包含很多代码 private final Logger logger = LogManager.getLogger(ThisClassName.class); 我想知道输入
我是一名优秀的程序员,十分优秀!