【问题标题】:sudo: pip: command not found in CentOSsudo: pip: 在 CentOS 中找不到命令
【发布时间】:2015-11-08 07:57:17
【问题描述】:

我使用 CentOS 并安装了 pip 到 /usr/local/python-dir/bin/pip。我链接到/usr/local/bin/pip。然后我执行sudo pip install xxx,报错如下:

sudo: pip: command not found

我看到$PATH 没事:

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin

但是,我只能这样执行pip:

sudo /usr/local/bin/pip install xxx

如何配置 PATH 或其他内容?非常感谢。

【问题讨论】:

  • 如果您尝试在没有sudo 的情况下运行该链接,该链接是否有效?当然,您可能没有安装权限,但它会尝试以这种方式运行 pip 吗?

标签: python centos pip


【解决方案1】:

出于安全原因,sudo 不依赖于您环境中的 $PATH 集。在/etc/sudoers 中有一个secure_path 选项,它指定sudo 将用于定位二进制文​​件的PATH。例如:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

只需将/usr/local/bin 添加到此路径中,或者习惯于输入:

sudo `which pip` install xxx

【讨论】:

  • 我相信你必须用 visudo 编辑文件: sudo visudo;按插入键,向下滚动并进行更改,按 esc 键,然后按 ':qw' 保存文件并退出。这对我有用。
  • 我更同意@Paul Kenjora 的回答,sudo ln -s /usr/local/bin/pip /usr/bin/pip
【解决方案2】:

不理想但有效。您始终可以在安装后取消链接以恢复安全性。

sudo ln -s /usr/local/bin/pip /bin/pip

将 pip 放在根路径 bin 中。然后,您可以将 pip 作为 sudo 运行。

【讨论】:

    【解决方案3】:

    尝试sudo bash -c 'echo $PATH' 看看sudo 在哪里寻找命令;然后,您可以将pip 符号链接到这些目录之一。

    【讨论】:

    • 这是解决我问题的另一种方法,我将 /usr/local/bin 添加到secure_path,它也可以,谢谢
    • $ sudo ln -s /usr/local/bin/pip /usr/bin/pip 是我实现它的方式。
    • @MikeiLL,谢谢。为了它的价值,我在我的机器上找到了usr/local/bin/pip3.4
    【解决方案4】:

    pip 可以使用以下命令安装:

    yum -y install python-pip

    如果您遇到 GPG 密钥问题(没有这样的文件或目录),请触发以下命令:

    rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
    

    然后尝试安装pip

    【讨论】:

      【解决方案5】:

      您可以将-E 选项添加到sudo 以使用您的用户帐户的环境变量

      $ sudo -E pip install xyz
      

      【讨论】:

        【解决方案6】:

        在我的系统上,我安装了 miniconda;所以我打开的任何终端最初都在基本环境中。要在全球范围内安装 pip 包,我需要首先在基本环境之外“conda deactivate”。然后当我“pip install”一个包时,它可以被系统全局看到。

        【讨论】:

          猜你喜欢
          • 2019-04-05
          • 2023-03-14
          • 2018-08-11
          • 1970-01-01
          • 2021-09-05
          • 2014-07-06
          • 1970-01-01
          • 1970-01-01
          • 2014-04-26
          相关资源
          最近更新 更多