在尝试PIP卸载程序包以升级程序包时,会收到与名为DESCRIPTION.rst的文件有关的“权限被拒绝”错误。
我最初运行此命令:
pip uninstall twilio
有很多输出,但重要的是:
...
...
/usr/local/lib/python2.7/site-packages/twilio/version.pyc
Proceed (y/n)? y
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/commands/uninstall.py", line 59, in run
requirement_set.uninstall(auto_confirm=options.yes)
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1035, in uninstall
req.uninstall(auto_confirm=auto_confirm)
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 598, in uninstall
paths_to_remove.remove(auto_confirm)
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1836, in remove
renames(path, new_path)
File "/usr/local/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg/pip/util.py", line 295, in renames
shutil.move(old, new)
File "/usr/local/lib/python2.7/shutil.py", line 303, in move
os.unlink(src)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/site-packages/twilio-3.6.6.dist-info/DESCRIPTION.rst'
Storing debug log for failure in /home/chris/.pip/pip.log
[chris@boogie-dev ~]$
我不确定如何解决这个问题。我不太了解PIP,或者python库pakcages的来龙去脉,或者是什么是DESCRIPTION.rst文件,以及为什么它有特殊权限。
我已在sudo
下尝试了该命令,但在sudo
下无法使用PIP。我不确定这个问题的正确角度是什么:
DESCRIPTION.rst
文件答案 0 :(得分:1)
您可以使用modules
下载模块,而不是从python.org
下载pip
,但在执行此操作时,您应该在root mode
。
首次运行时
root@achal-PC:~# apt-get install python-pip
...it will install pip tool...
root@achal-PC:~# which pip
/usr/bin/pip
接下来当您安装twilio
root@achal-PC:~# pip install twilio
..Successfully installed twilio PyJWT pytz...
而不是un-install
做upgrade
本身就是
root@achal-PC:~# pip install --upgrade twilio
Requirement already up-to-date: twilio in /usr/local/lib/python2.7/dist-packages
Cleaning up..
我希望它有所帮助。
答案 1 :(得分:0)
我有同样的问题。尝试使用--user
标志,例如:pip uninstall --user twilio
。
就我而言,没有更改了我的软件包的安装/卸载位置,但我的猜测是,它避免了触摸某些保留用于root访问的文件。有关此问题的更多信息:What is the purpose "pip install --user ..."?