Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Upgrading python3.4 to python3.6 on ubuntu breaks pip

Tags:

python

pip

I'm attempting to install python3.6 on my machine after I currently have python3.4. However, after installation trying to run pip under python3.6 gives me the error:

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' 

There were several comments on the internet about that error being encountered, However, none of them contain any actual resolution suggestion. Does anyone have any idea how I could fix this?

like image 433
Alex Botev Avatar asked Mar 02 '17 14:03

Alex Botev


1 Answers

I managed to solve it without installing anything from sources. Here's what I did:

  1. First, install pip for Python3.x (for some weird reason I didn't have it...)

    $ sudo apt-get install python3-pip 

    It is an old version...

    $ pip3 --version pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.4) 
  2. ... so upgrade it to the latest

    $ sudo pip3 install --upgrade pip 

    Now it is much better

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

  1. Then upgrade 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 
  2. Now creating a new virtualenv works:

    $ mkvirtualenv -p `which python3.6` <VIRTUALENV_NAME> 

    pip also works:

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

Note: Now I realize it's a bit more than what you asked for, but (without knowing where exactly you failed) I guess you should be OK after step 2.

like image 191
Vendii Avatar answered Sep 20 '22 06:09

Vendii