回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>pip让我升级,并显示一条消息:</p>
<pre><code>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.
</code></pre>
<p>因此,我运行了该命令,得到一个异常,即pip无法卸载旧版本,因为对用户目录的访问被拒绝:</p>
<pre>
Collecting pip
Downloading pip-7.0.3-py2.py3-none-any.whl (1.1MB)
100% |################################| 1.1MB 292kB/s
Installing collected packages: pip
Found existing installation: pip 7.0.1
Uninstalling pip-7.0.1:
Successfully uninstalled pip-7.0.1
Exception:
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\pip\basecommand.py", line 223, in main
status = self.run(options, args)
File "C:\Python27\lib\site-packages\pip\commands\install.py", line 297, in run
root=options.root_path,
File "C:\Python27\lib\site-packages\pip\req\req_set.py", line 633, in install
requirement.commit_uninstall()
File "C:\Python27\lib\site-packages\pip\req\req_install.py", line 734, in commit_uninstall
self.uninstalled.commit()
File "C:\Python27\lib\site-packages\pip\req\req_uninstall.py", line 153, in commit
rmtree(self.save_dir)
File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 49, in wrapped_f
return Retrying(*dargs, **dkw).call(f, *args, **kw)
File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 212, in call
raise attempt.get()
File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 247, in get
six.reraise(self.value[0], self.value[1], self.value[2])
File "C:\Python27\lib\site-packages\pip\_vendor\retrying.py", line 200, in call
attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
File "C:\Python27\lib\site-packages\pip\utils\__init__.py", line 89, in rmtree
onerror=rmtree_errorhandler)
File "C:\Python27\lib\shutil.py", line 247, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python27\lib\shutil.py", line 247, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python27\lib\shutil.py", line 252, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "C:\Python27\lib\site-packages\pip\utils\__init__.py", line 101, in rmtree_errorhandler
func(path)
WindowsError: [Error 5] Access is denied: 'c:\\users\\chris\\appdata\\local\\temp\\pip-ossyhh-uninstall\\python27\\scripts\\pip.exe'
</pre>
<p>我运行的是Windows 8.1,但在运行Windows 7的另一台计算机上也出现了同样的错误。它似乎并没有停止新版本的安装,但我最终在temp目录中留下了pip文件夹。有人知道为什么会发生这种事吗?我怎么能纠正?</p>
<p><strong>编辑1:</strong>
奇怪的是,使用admin privildges运行升级会引发一个<strong>新的</strong>异常:</p>
<pre><code>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'`
</code></pre>
<p>升级完全失败。</p>
<p><strong>编辑2:</strong>
解决这个问题的唯一方法似乎是使用easy_install来升级pip(可以是-U或-m选项),但是如果pip不能升级自己,而它的预期(和声明的)功能是这样做,对我来说似乎是个问题。</p>