Как переключиться обратно на 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 ответов
Я прошел установку в ВМ, и произошло следующее.
- Установщик запрашивает место установки. По умолчанию
/home/myuser/anaconda3
, В конце вас спросят
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
Но я нахожу это немного странным. я мог бы
- Восстановить оригинал
.bashrc
- Создать (если его не существует)
~/bin
- Ссылка на сайт
ln -s ~/anaconda3/bin/python3 ~/bin/python3
- [Prepend
$HOME/bin
в$PATH
](Должно быть уже установлено по умолчанию~/.profile
) - Выйду и снова.
Таким образом, звоня 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
там должно быть больше в вашей ситуации.
Из моего опыта это не проблема вообще.