Не удалось обновить пакет python six в mac osx 10.10.2
Я пытаюсь установить последнюю версию шести пакетов python, но у меня есть следующие проблемы. Невозможно избавиться от шести 1.4.1 в 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
Что здесь не так? Невозможно обновить шесть!
Ответы
Ответ 1
Mac OS X python по умолчанию устанавливается как фреймворк.
В каталоге framework есть каталог "Extras" и пакет six
уже размещен там.
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py
В соответствии с описанием (https://github.com/MacPython/wiki/wiki/Which-Python), /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
указывается перед /Library/Python/2.7/site-packages
в пути поиска модуля.
Это означает, что все пакеты уже существуют в /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
не могут обновиться.
Возможно, вы должны установить python вручную, а не использовать python по умолчанию.
Ответ 2
Для меня, просто используя homebrew, исправлено все.
brew install python
Ответ 3
Ваш двоичный файл pip
принадлежит /usr/local/bin/python
, тогда как python
указывает на /usr/bin/python
. Как следствие
pip install --upgrade six
будет установлен на /usr/local/bin/python
.
В приведенной ниже команде убедитесь, что используется правая версия pip:
python -m pip install --upgrade six
Ответ 4
Я решил проблему следующим способом.
- Загрузите пакет six-1.10.0.tar.gz.
- Используйте эту команду для его установки.
python setup.py install
Это работает, потому что он устанавливает новую версию от шести до /Library/Python/2.7/site-packages/, которая просматривается до /System/Library/Frameworks/Python.framework/Версии/2,7/Дополнительно/Library/питон/
Ответ 5
Что сработало для меня было использовать easy_install
вместо pip
.
easy_install -U six
Easy_install удалось обновить пакет, даже если pip не удалось.
Ответ 6
Я столкнулся с этой точной проблемой при использовании pip для установки клиента openstack. Мое исправление заключалось в том, чтобы использовать easy_install вместо pip, поскольку он использует /Library/Python/2.7/site-packages/
для установки модуля вместо /System/Library/Frameworks/Python.framework/Versions/2.7/Extras
. Если это решение не является для вас вариантом, я могу подтвердить, что @Masakazu Matsushita имеет правильное обходное решение при настройке PYTHONPATH
на /Library/Python/2.7/site-packages
. Чтобы реализовать этот обходной путь, добавьте эту строку:
export PYTHON_PATH=/Library/Python/2.7/site-packages
к вашим ~/.bashrc
и ~/.profile
(если это приложение GUI Python, которое вы пытаетесь установить).
Ответ 7
Попробуйте выполнить следующие действия
-
Переустановите python с помощью brew
$ brew install python
-
Устранение проблемы с символической связью
$ brew link --overwrite python
-
Перезагрузите систему или запустите
$ hash -r python
Ответ 8
Попробуйте с pip2 его работу для меня pip2 install -U six
Ответ 9
В то время как одно или другое из вышеперечисленных решений может работать на вас, я думаю, важно понять, что происходит, и каковы параметры, которые у вас есть. Я нашел это (довольно длинное) описание очень полезным: он начинается с изложения вариантов и только затем предлагает решения.
Ответ 10
В конце концов, проблема для меня заключалась в том, что я использовал оболочку IPython.
which ipython
вернулся /usr/local/bin/ipython
, и при проверке этого файла, объявленного в верхней части #!/usr/bin/python
, который, казалось, обошел все мои усилия, чтобы использовать правильное местоположение python.
Просто изменив эту строку #!/usr/local/bin/python
, чтобы указать на правильную версию python, это означало, что IPython использовал правильный модуль six
.