升级Python2.7导致pip命令失败

问题

需要通过RobotFramework调用JMeter任务,于是安装了robotframework-jmeterlibrary,但出现了下面的错误:

1
AttributeError: 'datetime.timedelta' object has no attribute 'total_seconds'

查询后发现是由于Python版本过低,需要升级到2.7+
升级后,很多lib都需要重装,使用pip安装过程中,出现了下面的错误:

1
2
3
4
5
6
# pip
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

解决

上网搜了下,说法不一,基本就是重装distribute和pip,但我重装后依然无效。提示:

1
pkg_resources.DistributionNotFound: pip==7.1.0

突然灵机一动,想到一个问题:我新安装的是pip9.0.1,这里为什么提示7.1.0呢?难道调用的不是我新安装的pip?
于是

1
2
3
4
5
6
7
8
9
10
11
12
[root@LFTt-AutoTest01 ~]# which pip
/usr/local/bin/pip
[root@LFTt-AutoTest01 ~]# ls /usr/local/bin/pip*
/usr/local/bin/pip /usr/local/bin/pip3
/usr/local/bin/pip2 /usr/local/bin/pip2.7 /usr/local/bin/pip3.6
[root@LFTt-AutoTest01 ~]# /usr/local/bin/pip2.7 -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
[root@LFTt-AutoTest01 ~]# /usr/local/bin/pip -V
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

果然如我所料,虽然已经安装了新的pip,但系统默认调用的还是原来Python2.6的pip,这就好办了。

1
2
cp /usr/local/bin/pip /usr/local/bin/pip2.6
cp /usr/local/bin/pip2.7 /usr/local/bin/pip

搞定~

欢迎打赏!