找不到'pip == 9.0.1'分发,应用程序需要分发

时间:2018-07-18 01:01:55

标签: python error-handling installation pip

我认为我的点子坏了。我已经尝试过从强制重新安装到更新所有内容,但似乎没有任何效果。

当我做pip2 -v时,我得到以下信息:

Traceback (most recent call last):
  File "/usr/local/bin/pip2", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3144, in <module>
    @_call_aside
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3128, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 3157, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 666, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 984, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 870, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==9.0.1' distribution was not found and is required by the application

当我做pip -v时,我得到以下信息:

Traceback (most recent call last):
  File "/bin/pip", line 7, in <module>
    from pip._internal import main
ImportError: No module named pip._internal

仅供参考:我在Mac OSX上,并且正在使用Python 2.7.14

请帮助!

2 个答案:

答案 0 :(得分:6)

由于您使用的是macOS,因此您的计算机已经安装了Apple预先安装的Python 2.7。如果您使用的是macOS 10.13,则为2.7.10;当然,较旧的版本也具有较旧的版本。

同时,您已经安装了Python 2.7.14。您没有告诉我们如何操作(python.org安装程序,Anaconda,Homebrew等),但这很好。

问题在于Apple Python 2.7.10仍然是您的“主要” 2.7,因此您以某种方式最终以pip 9.0.1为2.7.14安装了其软件包,但认为而是与Apple 2.7.10一起运行。这就是为什么要查看/usr/local/lib/python2.7/site-packages的原因,它是Apple 2.7.10(而不是您的2.7.14)的站点程序包。而且您或者没有pip for Apple 2.7.10,或者您有一个较旧的版本。因此是错误。


Python Packaging User Guide建议您进行以下操作的原因是:处理多个Python安装(尤其是同一版本的多个安装)时遇到的麻烦

  • 使用python -m pip运行pip
  • 尽可能使用虚拟环境。

我不知道您通常如何确保运行2.7.14而不是Apple的2.7.10,但是无论运行什么命令,如果使用-m pip执行相同的操作,都可以保证使用您的2.7.14,而不是Apple的2.7.10。例如,如果您通常键入python2,请使用python2 -m pip而不是pip2

同时,如果您激活虚拟环境,则无论如何,pythonpip(以及诸如2to3之类的其他东西)都将成为该环境的版本。否则,您碰巧已经安装好了,并且整个系统设置令人困惑。

答案 1 :(得分:1)

在Mac上遇到了同样的问题,我通过以下方式解决了问题

$ brew upgrade python@2

基本上,以上命令将Apple的python 2.7.10返还给您。

$ which python
/usr/bin/python
$ python -V
Python 2.7.10

Pip立即生效,可以升级到19.0.1

pip --version
pip 18.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
pip install --upgrade pip setuptools
pip --version
pip 19.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)

这是brew upgrade python@2对Mac上的python的评价

==> python@2
Pip and setuptools have been installed. To update them
  pip install --upgrade pip setuptools

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python
相关问题