pip破碎,重新安装不起作用。 EC2

时间:2016-01-12 02:05:03

标签: python python-2.7 amazon-ec2

我现在在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

4 个答案:

答案 0 :(得分:11)

首先,which pip不会返回与sudo which pip相同的结果,所以你应该先检查一下。

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

第二,你可以试试这个:

easy_install --upgrade pip

如果你在这里遇到错误(关于pip&#39;车轮支持),试试这个,然后再次运行上面的命令:

easy_install -U setuptools

答案 1 :(得分:4)

我使用Wesm的提示修复了相同的错误(&#34;&#39; pip == 6.1.1&#39;未找到分布&#34;)

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

所以,它会刺激&#34; pip&#34;普通用户和root用户不一样。稍后会解决。

然后我跑了&#34; sudo easy_install --upgrade pip&#34; =&GT;成功

然后我使用&#34; sudo / usr / local / bin / pip install&#34;它有效。

答案 2 :(得分:2)

对于同样遇到相同问题的任何人,还有一些其他信息:-

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

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

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

语法是:-

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

答案 3 :(得分:0)

我尝试了其中一些解决方案,但收效甚微。最后,我只是使用Ubuntu作为操作系统创建了一个新实例。已经正确设置了正确使用Python的功能。

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