【问题标题】:pip3 not working on ubuntu 20.04: "has no attribute 'SourceFileLoader'"pip3 在 ubuntu 20.04 上不起作用:“没有属性 'SourceFileLoader'”
【发布时间】:2020-10-10 13:18:18
【问题描述】:

在 Ubuntu 20.04 上,我使用以下命令安装了 pip3: sudo apt install python3-pip

但是当我运行pip3 时,我收到以下错误:

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.8/dist-packages/pkg_resources.py", line 1479, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

在虚拟环境中,pip3 命令可以正常工作。

正如其他 SO 答案中所建议的,我尝试重新安装 python3 和 pip3,但均未成功。很多其他答案都使用pip3来解决问题,但是我无法运行pip3。

我注意到其他几个程序(docker-compose、Guake)给了我类似的错误。

我运行 python 3.8.2。当我打开一个虚拟环境时,我可以看到我的 pip3 版本是 20.0.2。

【问题讨论】:

  • 我感受到你的痛苦。有时我会更明确地取得成功,即调用pip3.8。这有帮助吗?
  • 感谢您与我们联系!不幸的是没有成功:找不到命令
  • 你试过python3.8 -m pip吗?
  • python3.8 -m pip --version 给我pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

标签: python python-3.x ubuntu pip ubuntu-20.04


【解决方案1】:

我花了很长时间来解决这个问题,但最后我还是重新安装了。我将在这里分享我学到的东西,希望它可以帮助其他人。

我的假设是,当我在没有进入虚拟环境的情况下意外安装了 requirements.txt 时出错了。这触发了旧的 setuptools 的安装,然后破坏了 pip 并毁了一切。

可能的解决方法是:

  1. 删除点:sudo apt-get --purge autoremove python3-pip
  2. 通过python安装pip:python3.8 -m pip install --upgrade --force-reinstall pip。现在 pip 又可以工作了。
  3. 现在尝试修复 setuptools:pip install --upgrade --ignore-installed setuptools。修复这里弹出的问题(如何?不知道)。我在这里遇到的一个问题是不允许我使用 sudo 调用 pip。
  4. 最后我猜你会希望以正常方式安装 pip,所以你卸载 python3.8 -m pip uninstall pip 并安装 sudo apt install python3-pip

下次我将完全跳过安装 python3-pip。这样我就不得不打开一个虚拟环境了。

最后,一些问题开始出现(也是因为我做了很多修改),我对自己的安装失去了信心。即使我会解决所有问题,我知道当下一个问题出现时,我会再次觉得这可能是问题所在。最好从头开始,打下坚实的基础。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 2019-07-02
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多