在ubuntu上将python3.4升级到python3.6会中断pip

新手上路,请多包涵

在我目前拥有 python3.4 之后,我正在尝试在我的机器上安装 python3.6。但是,安装后尝试在 python3.6 下运行 pip 给我错误:

 Traceback (most recent call last):
  File "pip3", line 7, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 59, in <module>
    from pip.log import logger
  File "/usr/lib/python3/dist-packages/pip/log.py", line 9, in <module>
    import colorama, pkg_resources
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1520, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "pip3", line 7, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 59, in <module>
    from pip.log import logger
  File "/usr/lib/python3/dist-packages/pip/log.py", line 9, in <module>
    import colorama, pkg_resources
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1520, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

互联网上有几条关于遇到该错误的评论,但是,没有一条包含任何实际的解决建议。有谁知道我该如何解决这个问题?

原文由 Alex Botev 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 403
1 个回答

我设法在没有从源代码安装任何东西的情况下解决了它。这是我所做的:

  1. 首先,为 Python3.x 安装 pip (出于某种奇怪的原因我没有安装它……)
    $ sudo apt-get install python3-pip

这是一个旧版本…

    $ pip3 --version
   pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.4)

  1. …所以 升级 到最新的
   $ sudo pip3 install --upgrade pip

现在好多了

   $ sudo pip3 --version
   pip 9.0.1 from /usr/local/lib/python3.4/dist-packages (python 3.4)


  1. 然后升级 virtualenvvwrapper
    $ sudo pip3 install --upgrade virtualenvwrapper
   # ...
   Successfully installed pbr-3.0.1 six-1.10.0 stevedore-1.22.0 virtualenv-15.1.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.7.2

  1. 现在创建一个新的 virtualenv 工作:
    $ mkvirtualenv -p `which python3.6` <VIRTUALENV_NAME>

pip 也适用:

    $ pip install django
   # ...
   Successfully installed django-1.11.2 pytz-2017.2

   $ pip freeze
   Django==1.11.2
   pytz==2017.2

注意:现在我意识到这比你要求的要多一些,但是(不知道你到底在哪里失败了)我想你在第 2 步之后应该没问题。

原文由 Vendii 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题