python报错的那些事(二)
在安装logging1时发生了错误
安装logging:pip install logging
第一次安装的信息:
E:\保存python文件>pip install logging
Collecting logging
Downloading https://files.pythonhosted.org/packages/93/4b/979db9e44be09f71e85c9c8cfc42f258adfb7d93ce01deed2788b2948919/logging-0.4.9.6.tar.gz (96kB)
100% |████████████████████████████████| 102kB 1.9MB/s
Complete output from command python setup.py egg_info:
running egg_info
creating pip-egg-info\logging.egg-info
writing pip-egg-info\logging.egg-info\PKG-INFO
writing dependency_links to pip-egg-info\logging.egg-info\dependency_links.txt
writing top-level names to pip-egg-info\logging.egg-info\top_level.txt
writing manifest file 'pip-egg-info\logging.egg-info\SOURCES.txt'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\Lenovo\AppData\Local\Temp\pip-install-tbtynbzj\logging\setup.py", line 13, in <module>
packages = ["logging"],
File "d:\software\python\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "d:\software\python\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "d:\software\python\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "d:\software\python\lib\site-packages\setuptools\command\egg_info.py", line 296, in run
self.find_sources()
File "d:\software\python\lib\site-packages\setuptools\command\egg_info.py", line 303, in find_sources
mm.run()
File "d:\software\python\lib\site-packages\setuptools\command\egg_info.py", line 534, in run
self.add_defaults()
File "d:\software\python\lib\site-packages\setuptools\command\egg_info.py", line 570, in add_defaults
sdist.add_defaults(self)
File "d:\software\python\lib\distutils\command\sdist.py", line 226, in add_defaults
self._add_defaults_python()
File "d:\software\python\lib\site-packages\setuptools\command\sdist.py", line 127, in _add_defaults_python
build_py = self.get_finalized_command('build_py')
File "d:\software\python\lib\distutils\cmd.py", line 298, in get_finalized_command
cmd_obj = self.distribution.get_command_obj(command, create)
File "d:\software\python\lib\distutils\dist.py", line 857, in get_command_obj
klass = self.get_command_class(command)
File "d:\software\python\lib\site-packages\setuptools\dist.py", line 845, in get_command_class
self.cmdclass[command] = cmdclass = ep.load()
File "d:\software\python\lib\site-packages\pkg_resources\__init__.py", line 2411, in load
return self.resolve()
File "d:\software\python\lib\site-packages\pkg_resources\__init__.py", line 2417, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "d:\software\python\lib\site-packages\setuptools\command\build_py.py", line 15, in <module>
from setuptools.lib2to3_ex import Mixin2to3
File "d:\software\python\lib\site-packages\setuptools\lib2to3_ex.py", line 12, in <module>
from lib2to3.refactor import RefactoringTool, get_fixers_from_package
File "d:\software\python\lib\lib2to3\refactor.py", line 18, in <module>
import logging
File "C:\Users\Lenovo\AppData\Local\Temp\pip-install-tbtynbzj\logging\logging\__init__.py", line 618
raise NotImplementedError, 'emit must be implemented '\
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Lenovo\AppData\Local\Temp\pip-install-tbtynbzj\logging\
You are using pip version 19.0.3, however version 20.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
错误信息
Command “python setup.py egg_info” failed with error code 1 in C:\Users\Lenovo\AppData\Local\Temp\pip-install-tbtynbzj\logging\
You are using pip version 19.0.3, however version 20.3.1 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.
在安装logging时发生了错误
解决方案:
更新插件
python -m pip install --upgrade setupTools
python -m pip install --upgrade pip
这两步都要弄,若只更新了其中一个,还是会报错
比如只更新了 setupTools
E:\保存python文件>python -m pip install --upgrade setupTools
Collecting setupTools
Downloading https://files.pythonhosted.org/packages/3d/f2/1489d3b6c72d68bf79cd0fba6b6c7497df4ebf7d40970e2d7eceb8d0ea9c/setuptools-51.0.0-py3-none-any.whl (785kB)
100% |████████████████████████████████| 788kB 56kB/s
Installing collected packages: setupTools
Found existing installation: setuptools 40.8.0
Uninstalling setuptools-40.8.0:
Successfully uninstalled setuptools-40.8.0
Successfully installed setupTools-51.0.0
You are using pip version 19.0.3, however version 20.3.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
再次安装logging时,报错信息:
Command "d:\software\python\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\Lenovo\\AppData\\Local\\Temp\\pip-install-cqag1lhf\\logging\\setup.py';f=getattr(tokenize, 'open', open)(__file__);
code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Lenovo\AppData\Local\Temp\pip-record-yl704l_i\install-record.txt --single-version-externally-manage
d --compile" failed with error code 1 in C:\Users\Lenovo\AppData\Local\Temp\pip-install-cqag1lhf\logging\
You are using pip version 19.0.3, however version 20.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
所以还得更新pip
E:\保存python文件>python -m pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/54/eb/4a3642e971f404d69d4f6fa3885559d67562801b99d7592487f1ecc4e017/pip-20.3.3-py2.py3-none-any.whl (1.5MB)
100% |████████████████████████████████| 1.5MB 101kB/s
Installing collected packages: pip
Found existing installation: pip 19.0.3
Uninstalling pip-19.0.3:
Successfully uninstalled pip-19.0.3
Successfully installed pip-20.3.3
更新后:
E:\保存python文件>pip install logging
Requirement already satisfied: logging in d:\software\python\lib\site-packages (0.4.9.6)
这样就安装成功了
拓展:
logging模块与log4j的机制是一样的,只是具体的实现细节不同。模块提供logger,handler,filter,formatter。
logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。
handler:将日志记录(log record)发送到合适的目的地(destination),比如文件,socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。
filter:提供一种优雅的方式决定一个日志记录是否发送到handler。
formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。
与log4j类似,logger,handler和日志消息的调用可以有具体的日志级别(Level),只有在日志消息的级别大于logger和handler的级别。
Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式。 ↩︎