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.