MacOS: Как понизить начальный Python?
Я запускаю MacOS Sierra 10.12.4, и я понял, что homebrew python был обновлен до версии 2.7.13. Как я могу вернуться к 2.7.10?
Ответы
Ответ 1
Во-первых, обычно считается плохой практикой полагаться на системный python для пользовательского кода земли, если вы можете этого избежать. Вы должны предположить, что системным утилитам требуется определенная версия системного Python, и ваш пользовательский код может быть привязан к этой версии Python навсегда, что нецелесообразно (если только вы не пишете системные утилиты, в этом случае просто используйте /bin/python, но тогда вы бы не задавали этот вопрос...).
Во-вторых, мне непонятно, зачем вам 2.7.10 вместо 2.7.13. Все питоны с одинаковым младшим номером ревизии (2.7) должны быть всегда совместимыми. Если вам нужен 2.6, это будет другая история, так как это изменение в минорной версии. Код, написанный для 2.7.x, должен быть совместимым.
Однако, предполагая, что ваш вариант использования действительно требует использования конкретной версии Python - сейчас вы получите реальное решение - убедитесь, что вы действительно обновили системный Python для начала. Если вы введете команду: which python
, получите ли вы /usr/bin/python
(система) или /usr/local/bin/python
(заварите установленный пользовательский питон). Например, /usr/bin/python -V
дает мне 2.7.10, хотя python -V
дает мне 2.7.13 (с помощью brew).
Возможно, вы установили последнюю версию python 2.7.x через brew
, которая помещает /usr/local/bin/python
в качестве символической ссылки в $PATH
, или у вас, возможно, есть псевдоним python
, указывающий куда-то, что вам не нужно. Проверьте свой заказ в $ PATH.
Вы можете сбросить свой доморощенный питон, удалив его (brew uninstall python
) или изменив символическую ссылку (ln -s -f /usr/bin/python /usr/local/bin/python
). Однако использование virtualenv устраняет необходимость во многих видах гимнастики.
Если вы хотите поэкспериментировать с предыдущими версиями Python, установленными через homebrew, этот ответ должен помочь: Как установить старую формулу с помощью Brew?
Последний вариант: если вам абсолютно необходима конкретная версия Python, pyenv может помочь.
brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
Ответ 2
Вы можете переключать версии с помощью brew switch
. Например, я просто понизил Python 3.7.0 до 3.6.5 следующим образом:
brew switch python 3.6.5
К сожалению, команда brew versions
устарела, и в настоящее время довольно сложно найти доступные версии. Я хотел бы услышать простое решение этого. Между тем, если вы знаете версию, к которой хотите перейти, попробуйте выполнить приведенную выше команду.
Я согласен с ответами здесь, что virtualenvs - хорошая идея, но наличие версии Python, которая вам нужна в homebrew, также является хорошей идеей. Как мои виртуальные имена были созданы, bin/python
был символической ссылкой на /usr/local/bin/python
, поэтому все произошло, когда Python был обновлен через homebrew.
Ответ 3
Загрузите python 3.6.0 с https://www.python.org/downloads/release/python-360/.
Установите его как обычный пакет.
Запустите cd/Library/Frameworks/Python.framework/Version
Запустите ls, и все установленные версии Python будут видны здесь.
Запустите sudo rm -rf 3.7
Проверьте версию сейчас python3 -V
и теперь она будет 3,6.
Ответ 4
Это не прямой ответ на вопрос, а объясняет решение, чтобы не касаться системного python.
Общая идея заключается в том, что вы всегда должны устанавливать независимый python для своих проектов. Каждый проект нуждается в собственной версии python (по соображениям совместимости с библиотеками), и не стоит оставлять одну версию python и пытаться заставить ее работать с несколькими проектами.
Я предполагаю, что эта проблема возникла в вашей системе, потому что для другого проекта требуется более высокая версия python, и теперь для вашего другого проекта вам нужен более низкий python версии.
Лучший способ обработки версий python - использовать virtualenv.
Каждый проект будет иметь свой собственный python, поэтому вы можете иметь проекты, которые работают с python 2.7 и python 3, и они никогда не касаются друг друга.
Установите разные версии python с помощью homebrew, а затем для каждого проекта при создании virtualenv вы решаете, какой питон выбрать. Каждый раз, когда вы работаете с этим проектом, версия python будет той, которую вы выбрали сами, когда создали virtualenv.