可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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!
回答1:
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.
回答2:
I resolved the problem by the following method.
- Download the six-1.10.0.tar.gz package
- 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/
回答3:
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
回答4:
For me, just using homebrew fixed everything.
brew install python
回答5:
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.
回答6:
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).
回答7:
Try these steps
Reinstall python using brew
$ brew install python
Resolve missing symlink problem
$ brew link --overwrite python
Reboot system or run
$ hash -r python
回答8:
Try with pip2 its work for me
pip2 install -U six
回答9:
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.
回答10:
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.