Python 为什么我在pip中会遇到权限拒绝错误?

Python 为什么我在pip中会遇到权限拒绝错误?,python,pip,Python,Pip,我尝试安装一个软件包: pip install typing 我明白了: File "/home/user/.local/lib/python2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir os.makedirs(path) File "/usr/lib/python2.7/os.py", line 150, in makedirs makedirs(head, mode) File

我尝试安装一个软件包:

pip install typing
我明白了:

  File "/home/user/.local/lib/python2.7/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7'
然后我试着用sudo运行它:

sudo pip install typing
这就是错误:

sudo: unable to execute /usr/local/bin/pip: No such file or directory
怎么了

文件是否丢失或pip安装不正确

我安装它时使用了:

sudo apt-get install python-pip
试试这个

pip install --upgrade --force-reinstall <package>
使用virtualenv总是更好

sudo pip install virtualenv <folder>

并在其中安装您的软件包
pip安装类型

试试python-m pip安装类型如果你使用virtualenv?@bluesummers这对sudo有效,它安装了类型..谢谢,但我也得到了这个:目录'/home/user\u name/.cache/pip/http'或它的父目录不属于当前用户,缓存已被禁用。请检查该目录的权限和所有者。如果用sudo执行pip,您可能需要sudo的-H标志。您能
ls/usr/local/bin
并发布它吗?在我看来,似乎有一个
/usr/local/bin/pip
文件,但它可能是一个死链接。在这种情况下,您可以尝试再次从安装pip,我认为您在
/usr/local/bin
中有python3.4,在
/usr/lib
中有系统的python2.7。当您运行非sudo时,您使用python2.7(基于您发布的错误消息)。当您使用
sudo
运行时,您将使用python3.4。若要修复此问题,请更改root
$PATH
或do
sudo/usr/bin/pip安装类型
,我会遇到相同的错误:sudo:无法执行/usr/local/bin/pip:没有这样的文件或目录,并且没有sudo,权限被拒绝:'/usr/local/lib/python2.7/dist packages'@ano\ss这是由于两个版本的python造成的。您可以在安装或使用virtualenv python3-m venv myvenv时提及python版本
sudo pip install virtualenv <folder>
virtualenv python3 -m venv myvenv