ImportError: cannot import name NullHandler

- 日理万妓 2023-01-11 09:10 425阅读 0赞

记录一次python脚本执行报错的问题和解决方法:
问题起因:
python版本:2.6.6
系统环境:centos 6.9
原本想装一个influxdb的模块:pip install influxdb-5.0.0-py2.py3-none-any.whl (这个命令)
报错:-bash: pip: command not found
安装pip:

  1. wget https://bootstrap.pypa.io/get-pip.py
  2. easy_install pip --报错
  3. 再安装:yum install -y python-pip ,这个命令安装成了,但是好像提示了一大坨内容。没有去管它。

后来发现执行python脚本报下面错误,在安装pip命令之前脚本正常执行:

  1. Traceback (most recent call last):
  2. File "weixin_report.py", line 7, in <module>
  3. import urllib3
  4. File "/usr/lib/python2.6/site-packages/urllib3/__init__.py", line 9, in <module>
  5. from logging import NullHandler
  6. ImportError: cannot import name NullHandler

解决思路:
通过报错信息查看__init__.py 文件,发现该文件确实在我执行安装pip命令的时间被改过,然后进去把from logging import NullHandler 这行注释掉,但是还是不行。后来百度了很多文档都无法解决,遇到这个问题的朋友很多,但是没有实际的经验可以借鉴。
真正解决方法:
下载python 2.7.18 的安装包,编译安装一次,然后把python2的命令替换掉(一定要先把python2.6备份)
替换之后如下:

  1. # ll /usr/bin/python*
  2. lrwxrwxrwx 1 root root 34 Jan 26 15:29 /usr/bin/python -> /usr/local/python2.7.18/bin/python
  3. lrwxrwxrwx. 1 root root 6 Dec 7 2017 /usr/bin/python2 -> python
  4. -rwxr-xr-x 2 root root 8.9K Aug 18 2016 /usr/bin/python2.6
  5. -rwxr-xr-x 2 root root 8.9K Aug 18 2016 /usr/bin/python2.6.bak

故事前介:上面是线上机的操作出问题的,我线下测试机是centos7.4 稳定版。python是2.7的,安装influxdb模块正常。我在难道是pip不支持python2的原因导致?我centos7 是这个新闻之前安装的,线上环境是这个新闻之后安装的。
那也不应该影响到我的旧版本啊。新闻如下:
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,425人围观)

还没有评论,来说两句吧...

相关阅读