Search code examples
pythonubuntupip

How to Install pip for python 3.7 on Ubuntu 18?


I've installed Python 3.7 on my Ubuntu 18.04 machine. Following this instructions in case it's relevant:

Download : Python 3.7 from Python Website [1] ,on Desktop and manually unzip it, on Desktop Installation : Open Terminal (ctrl +shift+T)

Go to the Extracted folder
$ cd ~/Desktop/Python-3.7.0
$ ./configure
$ make
$ sudo make install

Making Python 3.7 default Python :

$ sudo vim ~/.bashrc
press i
on the last and new line - Type
alias python= python3.7
press Esc
type - to save and exit vim
:wq
now type
$ source ~/.bashrc

From here: https://www.quora.com/How-can-I-upgrade-Python-3-6-to-3-7-in-Ubuntu-18-04

I've downloaded several modules through pip install module but when I try to import them, I get a ModuleNotFoundError: No module names 'xx'

So I did some research and apparently when used pip to install, it installed in the modules in previous version of Python. Somewhere (probably a question in SO) I found a suggestion to install the module using python3.7 -m pip install module but then I get /usr/local/bin/python3.7: no module named pip.

Now I'm stuck, pip is installed, but apparently not for Python 3.7. I'm assuming that if I can install pip for Python 3.7, I can run the pip install command and get the modules I need. If that is the case, how can I install pip for python 3.7, since it's already installed?


This is the best I have come up with:

I have installed python 3.7 successfully and I can install modules using pip (or pip3) but those modules are installed in Python 3.6 (Comes with ubuntu). Therefore I can't import those modules in python 3.7 (get a module not found)

Python 3.7 doesn't recognize pip/pip3, so I can't install through pip/pip3 I need python 3.7


Solution

  • In general, don't do this:

    pip install package
    

    because, as you have correctly noticed, it's not clear what Python version you're installing package for.

    Instead, if you want to install package for Python 3.7, do this:

    python3.7 -m pip install package
    

    Replace package with the name of whatever you're trying to install.

    Took me a surprisingly long time to figure it out, too. The docs about it are here.

    Your other option is to set up a virtual environment. Once your virtual environment is active, executable names like python and pip will point to the correct ones.