11

I have both python2.6 and python2.7 installed in my CentOS box. python2.6 is installed at /usr/bin/python and i have installed python2.7 from source at location /usr/local/bin/python

after the installation my default python is changed to python2.7 instead of pythn2.6 at /usr/bin, I want to use python 2.6 at /usr/bin/python. I have tried following things already nothing worked.

  1. I have created symlink and made it point to python 2.6 at /usr/bin
  2. I have modified my default python path in .bash_profile and but that still doesn't work

Please let me know how can i have python 2.7 installed along with 2.6 installed and python 2.6 as my default version. I have the same thing working with my arch linux box, but this doesn't work with my centos box.

Attaching my .bash_profile,

# .bash_profile

export _BASH_PROFILE=1

# Get the aliases and functions
if [ -z "$_BASHRC" ]; then
        . ~/.bashrc
fi

unset _BASH_PROFILE

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME=""

export USERNAME BASH_ENV PATH

export user=$(/usr/bin/whoami)
export WK_PORT=8086
export WK_PATH=ADC

# For DEV accounts change PYDOC_PORT value to 7400 + webkit number. For
# example WK23 would be port number 7423
export PYDOC_PORT=7464


alias serve="python -m SimpleHTTPServer"


unset _BASH_PROFILE

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME=""

export USERNAME BASH_ENV PATH

export user=$(/usr/bin/whoami)
export WK_PORT=8086
export WK_PATH=ADC

# For DEV accounts change PYDOC_PORT value to 7400 + webkit number. For
# example WK23 would be port number 7423
export PYDOC_PORT=7464


alias serve="python -m SimpleHTTPServer"


PYTHONPATH="$PYTHONPATH:/usr/bin/python"
binu.py
  • 1,137
  • 2
  • 9
  • 20
  • If you echo your $PATH environment variable, does `/usr/local/bin` appear before `/usr/bin`? – Brett Beatty Aug 07 '17 at 18:07
  • @BrettBeatty yes it does, how can i fix it? – binu.py Aug 07 '17 at 18:11
  • I don't know the correct solution here. What that means is your computer looks for `python` in `/usr/local/bin` before looking in `/usr/bin`. It may be as simple as getting rid of `/usr/local/bin/python` if it's just a symlink to `/usr/local/bin/python2.7`. It sounds like you installed 2.7 yourself, so I would think it shouldn't break anything, but I don't know enough about your system to say for sure. – Brett Beatty Aug 07 '17 at 18:18
  • I can remove python2.7 now and i know it will work, but i want to use both versons and for that i have to install it again and the same issue will appear – binu.py Aug 07 '17 at 18:20
  • If `/usr/local/bin/python` is a symlink to `/usr/local/bin/python2.7`, the latter would be your binary. You can probably call each with the `python2.6` and `python2.7` commands, respectively. All getting rid of the symlink would do is change which gets referred to by the `python` command. **Disclaimer**: I'm going off of my experience with Ubuntu and MacOS--I've never used CentOS. – Brett Beatty Aug 07 '17 at 18:29

3 Answers3

14

I had the same problem. The following command fixed it:

sudo ln -sf /usr/bin/python /usr/local/bin/python

This will make a symbolic link from /usr/local/bin/python --> /usr/bin/python. Referred from here

Pratik Kumar
  • 2,211
  • 1
  • 17
  • 41
0

You could use alias to point the command python at the 2.6 folder, and python27 to point at 2.7 like so:

In .bash_profile add:

alias python=/usr/bin/python/<python executable name>
Owen Hempel
  • 434
  • 2
  • 8
0

Thanks to @brett-beatty i have referred /usr/local/bin/python symlink to /usr/bin. The compiler looks into /usr/local/bin goes to /usr/bin and uses the correct version also keeps it consistent.

binu.py
  • 1,137
  • 2
  • 9
  • 20