繁体   English   中英

pip3 在 ubuntu 20.04 上不起作用:“没有属性 'SourceFileLoader'”

[英]pip3 not working on ubuntu 20.04: “has no attribute 'SourceFileLoader'”

在 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。

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

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

可能的修复可能是:

  1. 删除 pip: 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。 这样我就不得不打开一个虚拟环境。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM