Anish
Anish

Reputation: 1950

Unable to upgrade python six package in mac osx 10.10.2

I am trying to install latest version of six python package but I have following issues. Can't get rid of six 1.4.1 in mac OSX 10.10.2

sudo pip install six --upgrade
Requirement already up-to-date: six in /Library/Python/2.7/site-packages
Cleaning up...

pip search six
six - Python 2 and 3 compatibility utilities
INSTALLED: 1.9.0 (latest)

python -c "import six; print six.version"
1.4.1

which -a python
/usr/bin/python
which -a pip
/usr/local/bin/pip

What is wrong here? Can't upgrade six!

Upvotes: 22

Views: 42069

Answers (10)

Harry1992
Harry1992

Reputation: 469

Try with pip2 its work for me pip2 install -U six

Upvotes: 3

trim
trim

Reputation: 209

In the end, the problem for me was that I was using the IPython shell.

which ipython returned /usr/local/bin/ipython and upon inspection this file declared at the top #!/usr/bin/python, which seemed to be circumventing all my best efforts to use the correct python location.

Simply changing this line #!/usr/local/bin/python to point to the correct python version then meant IPython used the correct six module.

Upvotes: 1

What worked for me was to use easy_install instead of pip.

easy_install -U six

Easy_install managed to upgrade the package even when pip failed.

Upvotes: 16

kellyxiepei
kellyxiepei

Reputation: 938

I resolved the problem by the following method.

  1. Download the six-1.10.0.tar.gz package
  2. Use this command to install it.

python setup.py install

This works because it installs the new version of six to /Library/Python/2.7/site-packages/ which is searched before /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/

Upvotes: 24

Shamshad Alam
Shamshad Alam

Reputation: 1874

Try these steps

  1. Reinstall python using brew

    $ brew install python

  2. Resolve missing symlink problem

    $ brew link --overwrite python

  3. Reboot system or run

    $ hash -r python

Upvotes: 3

varepsilon
varepsilon

Reputation: 488

While one or another of the above solutions may work for you, I think it's important to understand what is going on and what are the options that you have. I found this (rather lengthy) description to be very useful: it starts with outlining the options and only then suggests solutions.

Upvotes: 1

user1833042
user1833042

Reputation: 41

I came across this exact issue when using pip to install the openstack client. My fix was to use easy_install instead of pip, as it utilizes /Library/Python/2.7/site-packages/ for module installation instead of the /System/Library/Frameworks/Python.framework/Versions/2.7/Extras. If this workaround is not an option for you, then I can confirm that @Masakazu Matsushita has the correct workaround of setting PYTHONPATH to /Library/Python/2.7/site-packages. To implement that workaround, add this line:

export PYTHON_PATH=/Library/Python/2.7/site-packages

to your ~/.bashrc and ~/.profile (if its a GUI Python application that you are trying to install).

Upvotes: 4

matt burns
matt burns

Reputation: 25380

For me, just using homebrew fixed everything.

brew install python

Upvotes: 16

Masakazu Matsushita
Masakazu Matsushita

Reputation: 307

Mac OS X's default python is installed as a framework. Under the framework directory, there is an 'Extras' directory and six package is already placed there.

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py

According to the description (https://github.com/MacPython/wiki/wiki/Which-Python), /System/Library/Frameworks/Python.framework/Versions/2.7/Extras is listed before /Library/Python/2.7/site-packages in module search path. This means all packages already exists in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras can't upgrade.

Maybe you should install python manually and not to use default python.

Upvotes: 11

cel
cel

Reputation: 31349

Your pip binary belongs to /usr/local/bin/python, whereas python points to /usr/bin/python. As a consequence

pip install --upgrade six

will install to /usr/local/bin/python.

The command below will make sure that the right version of pip is used:

python -m pip install --upgrade six

Upvotes: 17

Related Questions