注:本文基于CentOS 6.5编写,python版本为Python 2.6.6
背景
在CentOS 6.5上要使用supervisor的缘故,因此需要升级setuptools模块,快快乐乐的执行了以下命令:
pip install setuptools --upgrade
然后就不好了,pip命令直接报错了。。。
[root@localhost /]# pip --version
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.6/site-packages/pkg_resources/__init__.py", line 954, in <module>
class Environment:
File "/usr/lib/python2.6/site-packages/pkg_resources/__init__.py", line 958, in Environment
self, search_path=None, platform=get_supported_platform(),
File "/usr/lib/python2.6/site-packages/pkg_resources/__init__.py", line 188, in get_supported_platform
plat = get_build_platform()
File "/usr/lib/python2.6/site-packages/pkg_resources/__init__.py", line 388, in get_build_platform
from sysconfig import get_platform
ImportError: No module named sysconfig
原因
网上各种说路径的问题,明显不是,因为我升级setuptools前是OK的。最终谷歌得知是因为python版本太老,我升级的setuptools太新了,已经不再支持2.6版本的python。升级后的setuptools版本是:
setuptools-40.4.3-py2.py3-none-any.whl
其实在37版本之后就不再支持python 2.6了,也是略坑。修改记录参考下面链接:https://github.com/pypa/setuptools/issues/878。
解决方案
既然是因为setuptools版本太新了,那就安装一个37之前的版本呗。选了一个36的版本,安装后一切正常,good。
pip install setuptools==36.7.0