簡體   English   中英

python pip 錯誤 pkg_resources.DistributionNotFound

[英]python pip error pkg_resources.DistributionNotFound

我正在嘗試安裝一個新模塊,但我發現pip不起作用 - 它顯示

pkg_resources.DistributionNotFound: The 'pip==1.5.6' distribution was not found and is required by the application

對於我執行的每個電話。 另外,對於pip --help 我發現了一些使用pipeasy_install重新安裝pip建議,但easy_install也不起作用:

pkg_resources.DistributionNotFound: The 'setuptools==5.7' distribution was not found and is required by the application

有沒有辦法在不重新安裝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

擁有錯誤的完整回溯會很有用。 可能導致此問題的一種情況是安裝了多個版本的 Python。

例如,在我的 Ubuntu 20.04.1 LTS 上,除了隨 Ubuntu 20 一起分發的 Python 3.8 之外,我還從源代碼安裝了 Python 3.6。這是我在安裝 Python 3.6 后使用pip3 --version得到的pip3 --version

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 581, in _build_master
    ws.require(__requires__)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 898, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 789, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (pip 20.2.3 (/usr/local/lib/python3.6/site-packages), Requirement.parse('pip==20.0.2'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3126, in <module>
    @_call_aside
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3110, in _call_aside
    f(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3139, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 583, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 596, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 784, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==20.0.2' distribution was not found and is required by the application

最后一行是有問題的錯誤,但請注意回溯中的一個重要細節: raise VersionConflict

這可以通過顯式使用所需版本的pip來解決:

$ python3.6 -m pip --version
pip 20.2.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

或者干脆:

$ pip3.6 --version
pip 20.2.3 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

另一個可能會遇到的問題是在執行pip3.6 install缺少 lsb_release問題:

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

這可以通過定位lsb_release.py並創建符號鏈接來解決,例如:

sudo ln -s /usr/lib/python3/dist-packages/lsb_release.py /usr/local/lib/python3.6/site-packages/lsb_release.py

現在可以升級 pip3.6 並安裝新軟件包:

$ pip3.6 install --upgrade pip
$ pip3.6 install mypy

有多種管理 Python 版本的方法。 當心使用類似sudo update-alternatives --config python 更改系統的默認 Python 可能會導致問題,包括終端未打開等症狀。 最好有一個備用終端,例如 Visual Studio Code 中的終端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM