python pip 错误 pkg_resources.DistributionNotFound

Jur*_*ury 7 python pip reinstall

我正在尝试安装一个新模块,但我发现这pip不起作用 - 它显示

pkg_resources.DistributionNotFound: The 'pip==1.5.6' distribution was not found and is required by the application
Run Code Online (Sandbox Code Playgroud)

对于我执行的每个呼叫。另外,对于pip --help. 我发现一些建议pip使用pip或重新安装easy_install,但easy_install也不起作用:

pkg_resources.DistributionNotFound: The 'setuptools==5.7' distribution was not found and is required by the application
Run Code Online (Sandbox Code Playgroud)

python有没有办法在不重新安装及其所有模块的情况下解决此问题?
我有 Linux Ubuntu 14.04。
apt-get install python-pip建议安装pip(以及一堆其他以下软件),就像我的系统中没有它一样。我害怕这样做,这里会发生冲突吗?

更新。
apt-get说它要安装以下内容:build-essential dpkg-dev fakeroot g++ g++-4.8 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libfakeroot libstdc++-4.8-dev python-chardet-whl python-colorama python-colorama-whl python-distlib python-distlib-whl python-html5lib python-html5lib-whl python-pip python-pip-whl python-requests-whl python-setuptools python-setuptools-whl python-six-whl python-urllib3-whl python-wheel。但据我所知,pip 在没有这些软件包的情况下为我工作。
我也表演了
which -a python:::/usr/bin/python
which -a pip/usr/local/bin/pip
python --versionPython 2.7.6

Nag*_*gev 2

拥有错误的完整回溯将会很有用。可能导致此问题的一种情况是安装了多个版本的 Python。

\n

例如,在我的 Ubuntu 20.04.1 LTS 上,除了随 Ubuntu 20 分发的 Python 3.8 之外,我还从源代码安装了 Python 3.6。这就是我得到的结果pip3 --version安装 Python 3.6 后得到的结果:

\n
Traceback (most recent call last):\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 581, in _build_master\n    ws.require(__requires__)\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 898, in require\n    needed = self.resolve(parse_requirements(requirements))\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 789, in resolve\n    raise VersionConflict(dist, req).with_context(dependent_req)\npkg_resources.VersionConflict: (pip 20.2.3 (/usr/local/lib/python3.6/site-packages), Requirement.parse(\'pip==20.0.2\'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File "/usr/bin/pip3", line 6, in <module>\n    from pkg_resources import load_entry_point\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>\n    @_call_aside\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside\n    f(*args, **kwargs)\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set\n    working_set = WorkingSet._build_master()\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 583, in _build_master\n    return cls._build_from_requirements(__requires__)\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements\n    dists = ws.resolve(reqs, Environment())\n  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 784, in resolve\n    raise DistributionNotFound(req, requirers)\npkg_resources.DistributionNotFound: The \'pip==20.0.2\' distribution was not found and is required by the application\n
Run Code Online (Sandbox Code Playgroud)\n

最后一行是有问题的错误,但请注意回溯中的一个重要细节:raise VersionConflict

\n

这可以通过显式使用所需版本来解决pip

\n
$ python3.6 -m pip --version\npip 20.2.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)\n
Run Code Online (Sandbox Code Playgroud)\n

或者简单地:

\n
$ pip3.6 --version\npip 20.2.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)\n
Run Code Online (Sandbox Code Playgroud)\n

人们可能会偶然发现的另一个问题是执行时缺少 lsb_release问题pip3.6 install问题:

\n
  File "/usr/local/lib/python3.6/subprocess.py", line 438, in run\n    output=stdout, stderr=stderr)\nsubprocess.CalledProcessError: Command \'(\'lsb_release\', \'-a\')\' returned non-zero exit status 1.\n
Run Code Online (Sandbox Code Playgroud)\n

这个问题可以通过定位来解决lsb_release.py,例如:

\n
sudo ln -s /usr/lib/python3/dist-packages/lsb_release.py /usr/local/lib/python3.6/site-packages/lsb_release.py\n
Run Code Online (Sandbox Code Playgroud)\n

现在可以升级\xc2\xa0pip3.6并安装新软件包:

\n
$ pip3.6 install --upgrade pip\n$ pip3.6 install mypy\n
Run Code Online (Sandbox Code Playgroud)\n

管理 Python 版本有不同的方法。小心使用类似的东西sudo update-alternatives --config python。更改系统的默认Python,可能会导致问题,包括终端无法打开等症状。最好有一个可用的备份终端,例如 Visual Studio Code 中的终端。

\n