Install python and pip as local user on shared Linux
A few days ago, I was struggling to install python on a Linux machine, in which I had no root permission. That machine was shared with many other users and there was only an old python version already installed on the machine. After a bit of search and trial, I was able to install a newer version of python on this machine to my local directory.
My goal was to run a program developed under python 2.7 on the Linux server which already had python 2.6 installed. As you can see, it was impossible for me to upgrade python on the system because I had no root permission. The only solution was to install the python 2.7 into my local directory and override the necessary environment variables. Even though this blog aims for python 2.7, I believe it should also be the same for python 3.0. The detailed steps are as follows:
- Install python to local directory
Firstly, I create a folder in my home directory, download the python source and extract it
mkdir ~/python cd ~/python wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz tar zxfv Python-2.7.11.tgz find ~/python -type d | xargs chmod 0755 cd Python-2.7.11
Then I compiled the source following its guideline
./configure --prefix=$HOME/python make && make install
prefix option, it is mandatory for this to work. The value of prefix option is to specify where to put the related output of
make command, by default it is in the
/usr/local/ and we don't want that so we use our own customized directory.
Here comes another important step. By the default, if we type
python command, it will use the default python of the system. We are going to update the environment variables to force the shell to use our new python. Edit
~/.bashrc_profile and add the following lines:
export PATH=$HOME/python/Python-2.7.11/:$PATH export PYTHONPATH=$HOME/python/Python-2.7.11
Finally, refresh the current session by running the command:
You might need to logout and login again for the environment to update properly. At this point, you should be able to see a new python. To check, run this command:
it should show you the path to the
python binary file, which is located in your home directory:
- Install pip
Pip is a program used to help us easily install python packages, it is similar to
rubygems in Ruby world. After installing python locally as described in the first step, it is very easy to install
Run the following command to install pip as a local user
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py -O - | python - --user
After finishing the installation, we need to update our PATH variable. Open ~/.bashrc_profile and add the following line:
Again, reload the session by the command
source ~/.bashrc_profile or logout and login. Then, check if
pip command is available:
It should show a path pointing to your local directory:
pip installed as a local user, you can install any other packages you want without worrying about other parts of the whole system. This is extremely useful in case you want to experiment with new things.
I hope this tutorial is helpful to you. If you have any trouble following the tutorial, please let me know.
The solution is originally taken from this article, with some additional details and instructions: https://my.bluehost.com/cgi/help/python-install