How do I use pip 3 with Python 3.4?
Instead of installing python3-pip
via apt-get
or whatever (because the version in the repo is too old), download get-pip.py
, switch to the folder where you saved it, and run
sudo python3 get-pip.py
and it will install the latest version of pip
for you. It may create a symlink to pip3
, it may not, I don't remember.
You can then run
sudo pip install virtualenv
then use it to create your virtualenv, activate it, then use the pip
installed inside it to get Django.
NOTE:
You can use the same copy of get-pip.py
to install pip
for Python 2. If you want to do that, however, I'd advise you to run
sudo python get-pip.py
before you run
sudo python3 get-pip.py
Whichever one you install last will take the pip
filename. I don't know if Python 2 installs a command called pip2
(I know upgrading pip
via pip
does), but after you run the Python 2 install, run
sudo ln -s /usr/local/bin/pip2.7 /usr/local/bin/pip2
to create a pip2
alias. You can then run the Python 3 install, which will overwrite /usr/local/bin/pip
, then run
sudo ln -s /usr/local/bin/pip3.4 /usr/local/bin/pip3
to create a pip3
command as well (if you get an error that the file already exists, then you're good to go). Now, instead of running pip
when installing to your system site-packages
and not knowing exactly which version you're calling, you can just use pip2
and pip3
to explicitly state the version you want.
In previous (X)Ubuntu versions it would be found under pip3
in your bash terminal, but such command didn't appear for me in Xubuntu 16.04.1 LTS. I founded pip
(version python2.7), pip2
and pip2.7
.
You know pip
is in the repositories under python3-pip
. If you want to use pip in the repo firstly you must have it installed.
Answering your question,
How to use pip3
in Ubuntu:
sudo python3 -m pip install <your-pypi>
Maybe for you is easier to have pip3 as a command. Then, you need to upgrade it:
sudo python3 -m pip install --upgrade pip
It will create pip3
and pip3.5
**but** it modifies pip
too. It did for me, now if I do pip -V
it shows (python 3.5). Maybe this replacement is the reason Ubuntu doesn't include the pip3 binaries as commands.
Update June 2019:
I'm using Ubuntu 18.04.x LTS since last year. I founded locally installed (in ~/.local) pip
command pointing to pip2
(like python
always points to python2
) and pip3
pointing my last version of pip for python3.x as expected. So it is safe to install the package python3-pip
from the repo. Although python2 was installed at system level at the beginning, it did not include pip or pip2 command in /usr/bin/
I have python 3.4.2 installed on a debian derived OS (bunsenlabs hydrogen) and I spent many hours trying to resolve the problem before finding this thread. Using get-pip.py worked for me, but not quite as shown in this thread. Below is the order that worked for me. BTW, before running this I had to run:
apt-get remove python3-pip
because a different thread had suggested installing 'python3-pip'. That package gave me pip, but I then received errors that 'ensurepip' was missing.
Here is my sequence that worked:
1) download get-pip.py using the instruction given by MattDMo above
2) sudo python3 get-pip.py
3) sudo python3 -m pip install virtualenv
4) as normal user:
% cd $HOME
% mkdir testenv
% python3 -m virtualenv testenv
My thanks to MattDMo for providing an explanation of what works.