tom*_*z74 5 python aptana logging pydev
我正在使用来自 Aptana 安装的 PyDev 和 Python 3.5。一切都工作正常,直到我决定探索我以前从未使用过的日志模块。我从教程中的新脚本开始:
import logging
logging.warning('Watch out!') # will print a message to the console
logging.info('I told you so') # will not print anything
Run Code Online (Sandbox Code Playgroud)
在 Pydev 我有这个错误:
Traceback (most recent call last):
File "C:\Users\Tomasz\workspace\basicLogging.py", line 7, in <module>
logging.warning('Watch out!') # will print a message to the console
AttributeError: module 'logging' has no attribute 'warning'
Run Code Online (Sandbox Code Playgroud)
我搜索并发现了以下问题:python : installlogging module有类似的问题但没有解决方案。显然问题不在于安装。当我从 CMD 运行完全相同的脚本时,我有正确的输出。目前,Pydev 似乎给我的大多数脚本都带来了错误。如果我回到之前运行良好的代码,现在我有这个:
Traceback (most recent call last):
File "C:\Users\Tomasz\workspace\piClientFullQt.py", line 15, in <module>
from matplotlib.backends import qt_compat
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\__init__.py", line 122, in <module>
from matplotlib.cbook import is_string_like, mplDeprecation, dedent, get_label
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\cbook.py", line 33, in <module>
import numpy as np
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\__init__.py", line 180, in <module>
from . import add_newdocs
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\core\__init__.py", line 58, in <module>
from numpy.testing.nosetester import _numpy_tester
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\site-packages\numpy\testing\__init__.py", line 10, in <module>
from unittest import TestCase
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\unittest\__init__.py", line 59, in <module>
from .case import (TestCase, FunctionTestCase, SkipTest, skip, skipIf,
File "C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\lib\unittest\case.py", line 273, in <module>
class _CapturingHandler(logging.Handler):
AttributeError: module 'logging' has no attribute 'Handler'
Run Code Online (Sandbox Code Playgroud)
我不知道这是怎么发生的。如果我print(sys.executable)这样做,在两种情况下都会给出相同的路径C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\python3.exe,CMD 运行良好,而 Pydev 给出错误。
我认为 Pydev 中的一些 python 变量有一些问题(我认为),但找不到如何修复它。
编辑: 我看看这个问题并尝试了答案
python解释器的位置是正确的,看起来我有我需要的所有库
C:\Users\Tomasz>python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
C:\Users\Tomasz\AppData\Local\Programs\Python\Python35-32\Lib\site-packages
Run Code Online (Sandbox Code Playgroud)
并且站点包已经在系统 PYHONPATH 中
我尝试在 Window -> Preferences -> PyDev -> Iterpreters -> Python Interpreter 中恢复默认值
编辑: 按照@Samuel的建议我尝试:
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logging.warning('Watch out!') # will print a message to the console
logging.info('I told you so') # will not print anything
Run Code Online (Sandbox Code Playgroud)
在 PyDev 中我有:
Traceback (most recent call last):
File "C:\Users\Tomasz\workspace\SCT2python\goodExamps\logging\basicLogging.py", line 3, in <module>
logger = logging.getLogger()
AttributeError: module 'logging' has no attribute 'getLogger'
Run Code Online (Sandbox Code Playgroud)
如果我在命令行中作为脚本运行它,它就可以正常工作!
编辑:解决方案 感谢@Samuel,我发现我犯了绝对愚蠢的错误!在我开始使用这个库之前,我创建了一个文件夹来保存我的脚本,我愚蠢地将其称为“日志记录”。显然重命名文件夹解决了问题!
您需要初始化记录器实例:
import logging
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
logger.warning('Watch out!')
logger.info('I told you so')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1686 次 |
| 最近记录: |