Как переключиться обратно на python2 после того, как Anaconda установит python3 по умолчанию?

Недавно я установил Anaconda3-2.5.0-Linux-x86_64.sh на 15.04 и закончил с этим!

:~$ python --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

:~$ python2 --version
Python 2.7.9

:~$ python3 --version
Python 3.5.1 :: Anaconda 2.5.0 (64-bit)

В последние моменты установки я действительно вводил что-то как yes в спешке, и я полагаю, это должно было что-то сделать с этим. (Хорошо, по моей вине, я должен был с этим справиться осторожно, но сейчас мне нужна помощь, а не критика).

Скриншот

AFAIK, это определенно сломает другие программы. Что мне теперь делать?


То, что я думаю, может сработать.

Можно ли это сделать с помощью псевдонимов?

alias python=python2

Но я не уверен.

5 ответов

Решение

Я прошел установку в ВМ, и произошло следующее.

  1. Установщик запрашивает место установки. По умолчанию /home/myuser/anaconda3,
  2. В конце вас спросят

    Python 3.5.1 :: Continuum Analytics, Inc.
    creating default environment...
    installation finished.
    Do you wish the installer to prepend the Anaconda3 install location
    to PATH in your /home/myuser/.bashrc ? [yes|no]
    [no] >>> yes
    
    Prepending PATH=/home/myuser/anaconda3/bin to PATH in /home/myuser/.bashrc
    A backup will be made to: /home/myuser/.bashrc-anaconda3.bak
    

Чтобы восстановить старое поведение, перейдите в свой домашний каталог и выполните

mv .bashrc-anaconda3.bak .bashrc

затем начните новую оболочку.

Как вы предлагаете, вы могли бы alias python=python2 Но я нахожу это немного странным. я мог бы

  1. Восстановить оригинал .bashrc
  2. Создать (если его не существует) ~/bin
  3. Ссылка на сайт ln -s ~/anaconda3/bin/python3 ~/bin/python3
  4. [Prepend $HOME/bin в $PATH ](Должно быть уже установлено по умолчанию ~/.profile)
  5. Выйду и снова.

Таким образом, звоня python3 начну тот от Анаконды.


Важным моментом является то, что оригинал /usr/bin/python все еще там, и все еще указывает на python2.7, Последствия наличия python->python3 в вашем пути зависит от того, как конкретный скрипт называется.

Если Шебанг #!/usr/bin/python используется, как, вероятно, во всех исполняемых файлах, которые поставляются с Ubuntu, ничего не изменится. С другой стороны, для лучшей мобильности #!/usr/bin/env python иногда используется, что теперь приведет к python3.5 быть названным.

Хороший ответ здесь: https://stackoverflow.com/questions/24405561/how-to-install-2-anacondas-python-2-7-and-3-4-on-mac-os-10-9

conda create -n python2 python=2.7 anaconda

затем для переключения:

source activate python2

В случае, если кто-то хочет изменить свою версию Python по умолчанию обратно на 2.7 после того, как испортил ее (изменив версию по умолчанию на: anaconda или python 3) и выбрав неработающее программное обеспечение, просто перейдите по этой ссылке: Ссылка с инструкциями по изменению по умолчанию версия на питоне.

Это сработало для меня, но для Miniconda, это также должно работать для Anaconda, но, пожалуйста, поправьте меня, если я ошибаюсь.

Сначала получите переменную $PATH:

echo $PATH

Вероятно, это будет выглядеть так (путь миниконды раньше всего остального):

/home/your_user/miniconda3/bin:$PATH

Скопируйте этот путь в конец вашего файла ~/.bashrc, но с Miniconda в конце вместо начала пути, вот так:

export PATH="$PATH:/home/your_user/miniconda3/bin"

Система будет искать программы в начале переменной $PATH перед папкой miniconda3/bin.

Следует восстановить версии предыдущих программ, которые у вас были, например, python.

Начиная с Conda 4.4, они изменили код, добавленный в ~/.bashrc. Теперь, чтобы добиться того же, отредактируйте ~/.bashrc и закомментируйте строку ниже, чтобы предотвратить активацию базового слоя (базовой среды) в каждом терминале. Не нужно трогать любую другую часть новых дополнений. Я не уверен, какое значение CONDA_CHANGEPS1=false имеет, но не сталкивался с какими-либо проблемами.

   # CONDA_CHANGEPS1=false conda activate base

И хотя вы больше не увидите папку conda в пути, conda команда все равно будет работать нормально, а ваш оригинал python, python3, а также pipenv команды будут так же.

Вот мой ответ, и он может быть, а может и не быть фактическим конкретным ответом на то, что вы сделали со своей собственной системой.

Тем не менее, я нахожусь в аналогичной ситуации, и у меня была та же проблема.

Я использую Ubuntu 16.04 LTS и Python 2.7.12, и только что установил Anaconda.

Так что теперь, когда я иду в командную строку и введите python это все еще идет к моей установке Python2.

Подтверждено этой последовательностью:

$which python
/usr/bin/python     <  Catch-all for max compatibility
$python
Python 2.7.12 . . etc

Так что в моем случае, anaconda не вызывает никаких проблем с моими по умолчанию Python2 shebangs.

В конечном счете, это вопрос.

Когда вы спрашиваете систему which python Вы можете верить, что это будет правильная строка для использования в первой строке ваших программ Python в стиле командной строки.

В моей ситуации все те же файлы сценариев командной строки Python продолжают работать очень хорошо.

Я склонен писать Python в 3-совместимом режиме. Например, использование скобок вокруг моих операторов печати. Но я активно сопротивляюсь серьезным изменениям в системе, которые могут привести к сбоям в сложных программах на Python 2. Python 3 звучит великолепно, но не нужен для моих нужд. Python 2 - удивительный язык.

Моя вычислительная среда не позволяет мне возвращаться и заново проектировать прошлые процессы, которые были настроены для правильной работы, без особого удара, так как мне пришлось бы вернуться и выяснить, где я использовал его в первую очередь.


Итог для меня: после установки anaconda для будущего использования у меня не было ни ударов скорости, ни проблем.


Это тот момент, когда я нахожусь в процессе... Только что закончил переаттестацию всех предыдущих программ.


Следующим шагом будет использование некоторых интересных вещей, которые обещаны в пакете.


Итак, я должен подозревать, что другие просто установки anaconda там должно быть больше в вашей ситуации.

Из моего опыта это не проблема вообще.

Другие вопросы по тегам