pip让我通过一条消息升级:
You are using pip version 7.0.1, however version 7.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
我运行了该命令,但出现了一个异常,提示pip无法卸载旧版本,因为被拒绝访问我的用户目录:
收集pip 正在下载pip-7.0.3-py2.py3-none-any.whl(1.1MB) 100%|################################| 1.1MB 292kB / s 安装收集的软件包:pip 找到现有安装程序:pip 7.0.1 卸载pip-7.0.1: 已成功卸载pip-7.0.1 异常: 跟踪(最近的调用最先): 文件“C:\ Python27 \ lib \ site-packages \ pip \ basecommand.py”,行223,在main中 状态= self.run(options,args) 文件“C:\ Python27 \ lib \ site-packages \ pip \ commands \ install.py”,行297,在run中root = options.root_path, 文件“C:\ Python27 \ lib \ site-packages \ pip \ req \ req_set.py”,行633,在install中 要求.commit_uninstall() 文件“C:\ Python27 \ lib \ site-packages \ pip \ req \ req_install.py”,行734,在commit_uninstall中 self.uninstalled.commit() 文件“C:\ Python27 \ lib \ site-packages \ pip \ req \ req_uninstall.py”,行153,在commit中 rmtree(self.save_dir) 文件“C:\ Python27 \ lib \ site-packages \ pip \ _vendor \ retrying.py”,行49,在wrapped_f中 返回Retrying(* dargs,** dkw).call(f,* args,** kw) 文件“C:\ Python27 \ lib \ site-packages \ pip \ _vendor \ retrying.py”,行212,在call中 raise attempt.get() 文件“C:\ Python27 \ lib \ site-packages \ pip \ _vendor \ retrying.py”,行247,在get中
six.reraise(self.value [0],self.value [1],self.value [2]) 文件“C:\ Python27 \ lib \ site-packages \ pip \ _vendor \ retrying.py”,行200,在call中 attempt = Attempt(fn(* args,** kwargs),attempt_number,False) 文件“C:\ Python27 \ lib \ site-packages \ pip \ utils \ __ init __。py”,行89,在rmtree中 onerror = rmtree_errorhandler) 文件“C:\ Python27 \ lib \ shutil.py”,行247,在rmtree中 rmtree(fullname,ignore_errors,onerror) 文件“C:\ Python27 \ lib \ shutil.py”,行247,在rmtree中 rmtree(fullname,ignore_errors,onerror) 文件“C:\ Python27 \ lib \ shutil.py”,行252,在rmtree中 onerror(os.remove,fullname,sys.exc_info()) 文件“C:\ Python27 \ lib \ site-packages \ pip \ utils \ __ init __。py”,行101,在rmtree_errorhandler中 func(path) WindowsError:[错误5]拒绝访问:“c:\ users \ chris \ appdata \ local \ temp \ pip-ossyhh-uninstall \ python27 \ scripts \ pip.exe”
我正在运行Windows 8.1,但在另一台运行Windows 7的机器上也遇到了同样的错误。它似乎并不会阻止新版本的安装,但我最终会在我的临时目录中留下pip文件夹。有人知道为什么会这样发生或者我如何可以纠正它吗?
编辑1: 奇怪的是,以管理员权限运行升级会抛出一个新的异常:
File "C:\Python27\lib\site-packages\pip-7.0.1-py2.7.egg\pip\_vendor\distlib\scripts.py", line 302, in _get_launcher
result = finder(distlib_package).find(name).bytes
AttributeError: 'NoneType' object has no attribute 'bytes'`
升级失败了。
编辑2: 解决此问题的唯一方法似乎是使用easy_install升级pip(-U或-m选项),但如果pip无法升级自身,这对我来说似乎是一个问题,因为它的预期(和声明)功能是这样做的。