【问题标题】:pip broken, reinstall doesn't work. EC2点坏了,重新安装不起作用。 EC2
【发布时间】:2016-04-16 12:33:51
【问题描述】:

我现在在 EC2 上使用 pip,python 版本是 2.7。 'sudo pip' 突然不起作用了。

[ec2-user@ip-172-31-17-194 ~]$ sudo pip install validate_email
Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3138, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3124, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3151, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 663, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 676, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 849, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==6.1.1' distribution was not found and is required by the application
[ec2-user@ip-172-31-17-194 ~]$ which pip
/usr/local/bin/pip

【问题讨论】:

  • 好像sudo pip调用/usr/bin/pip,而不是/usr/local/bin/pip,因为root用户的PATH环境变量,所以你可以试试sudo /usr/local/bin/pip
  • Broken pip3 and easy_install3: DistributionNotFound 可能重复,也可能不重复。 pip3 != pip 对吗?

标签: python python-2.7 amazon-ec2


【解决方案1】:

首先,which pip 不会返回与 sudo which pip 相同的结果,因此您应该先检查一下。

您也可以考虑根本不将 pip 作为 sudo 运行。 Is it acceptable & safe to run pip install under sudo?

第二,你能试试这个吗:

easy_install --upgrade pip

如果您在此处遇到错误(关于 pip 的轮子支持),请尝试此操作,然后再次运行上述命令:

easy_install -U setuptools

【讨论】:

    【解决方案2】:

    我使用 Wesm 的提示修复了相同的错误(“未找到 'pip==6.1.1' 分布”):

    $> which pip && sudo which pip
    /usr/local/bin/pip
    /usr/bin/pip
    

    所以,看起来普通用户的“点子”和根用户的“点子”是不一样的。稍后会修复它。

    然后我运行“sudo easy_install --upgrade pip” => 成功

    然后我使用了“sudo /usr/local/bin/pip install”,它可以工作了。

    【讨论】:

      【解决方案3】:

      为同样陷入同一问题的任何人提供一些额外信息:-

      使用sudo 运行命令在usr/bin 目录中搜索命令。解决此问题的一种方法是在使用@Cissoid 在问题的评论部分中评论的sudo 时指定命令的完整路径

      或者

      ...您可以做的是使用ln 命令在usr/bin 目录中创建指向该命令的符号链接(符号链接)。

      $> ln -s /usr/local/bin/pip /usr/bin/pip
      

      语法是:-

      $> ln -s /path/to/file /path/to/link 
      

      【讨论】:

        【解决方案4】:

        我尝试了其中一些解决方案,但没有取得多大成功。最后,我刚刚创建了一个使用 Ubuntu 作为操作系统的新实例。它已经为正确使用 Python 进行了正确设置。

        如果这不可能,那么您可以尝试将用户 pip 链接到根 (sudo) 路径上的文件夹中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-12
          • 1970-01-01
          • 1970-01-01
          • 2023-03-03
          • 1970-01-01
          相关资源
          最近更新 更多