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


18

Недавно я установил 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

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


Да. использованиеalias python=python2
Мостафа Ахангарха

AFAIK, это определенно сломает другие программы. Что заставляет вас думать так? Если Anaconda устанавливает Python 3 по умолчанию, это, вероятно, по причине.
fkraiem

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

Это когда вы очень рады, что вы выбрали профессиональный подход и получили клон вашего предустановочного загрузочного диска, чтобы он не стал большой тратой времени. Пожалуйста, смотрите мой ответ ниже. Я думаю, что ваш метод установки вызвал сбой. Так что, если бы это случилось со мной, я бы вернулся и повторил. Общее время составило бы менее суток, чтобы выяснить, насколько оно жизнеспособно. В моем случае, как вы можете видеть, я нахожусь в конце проверок, так что теперь я могу прогрессировать, чтобы понять, стоит ли это усилий в первую очередь. Потребовалось пару дней, чтобы убедиться, что это не вызвало проблем, и исследовательская работа идет полным ходом.
SDsolar

Что касается указания версии Python, убедитесь, что вы точно знаете, какой эффект ряби может оказать это на всю вашу систему. Если вы просто не играете, вам действительно потребуется полный процесс проверки, если вы измените цели по умолчанию для which pythonрезультатов Шебанга. Требуется лишь немного времени, чтобы предотвратить обнаружение того, что вы загнали себя в угол необходимости переписывать некоторые из ваших утилит. Лучше всего оставить все как есть по умолчанию, если у вас не так много времени.
SDsolar

Ответы:


18

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

  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/binto $PATH] (должен быть уже установлен по умолчанию ~/.profile)
  5. Выйду и снова.

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


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

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


3
«4. Предварительно добавьте $ HOME / bin к $ PATH» .. уже сделано по умолчанию ~/.profile- после создания требуется только повторная регистрация ~/bin.
Муру

@muru Это правда, спасибо. Добавил в ответ.
Нефенте

хорошо, это сработало, спасибо! Просто чтобы заметить, что у меня ранее был установлен python 3.4.3 (и pip и pip3 были оба связаны с ним), теперь у меня 2.7, 3.4, 3.5. Теперь я собираюсь переустановить pip, чтобы указать 3,5!
зловещий

Anaconda поставляется с собственным менеджером пакетов под названием conda. Он также управляет виртуальными средами. Я использую это для установки пакетов вместо pip.
Нефенте


7

Хороший ответ здесь: /programming/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-зависимых команд и / или утилит. Справедливое предупреждение.
SDsolar

3

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


Если изменение системы происходит неправильно, убедитесь, что вы можете отменить его. Убедитесь, что у вас есть хорошие резервные копии системных образов, чтобы любые важные изменения можно было быстро отменить, если они не идут по плану. Думай профессионально. Если вы используете любительские приемы, вы не можете ожидать профессиональных результатов.
SDsolar

1

Это сработало для меня, но для 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команда все равно будет работать нормально, и оригинал python, python3и pipenvкоманда будет также.


Upvote, потому что я думаю, что вы правы. Это хорошо иметь в базе данных. Тем не менее, могу ли я попросить вас быть более точным в отношении номеров версий программного обеспечения?
SDsolar

Спасибо, и я не думаю, что версия программы имеет значение, это всегда должно работать. В то время мой установщик имел следующую версию: Miniconda3 4.3.14. Это помогает?
pedrodcb

0

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

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

Я использую 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должны быть больше в вашей ситуации.

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


К вашему сведению, у меня есть полная научная рабочая станция, работающая по солнечной динамике. Также о временных и спутниковых взаимодействиях. Это ДОЛЖНО работать. Так что я не просто обманщик во всем этом. Я устанавливаю одну вещь за раз, а затем проверяю, что все до этого работает. Затем я перехожу к следующему. SciPy, Matplotlab и т. Д. (Я предпочитаю черчение gnuplot). Поэтому, пожалуйста, поймите, что я представляю этот ответ в качестве точки данных из действующей рабочей системы 24x7 в академической исследовательской среде. Это не тестовая среда - это ежедневное производство.
SDsolar

Кроме того, как я упоминал в комментарии выше, ДУМАЙТЕ ПРОФЕССИОНАЛЬНО. Эти системы используются исследователями очень высокого уровня во всем мире. -> Убедитесь, что ваш загрузочный диск имеет клон, прежде чем делать какие-либо серьезные обновления системы. Команда ddбыстрая и простая, а SATA-соединения просты. Нет причин избегать защиты вашей системы. Просто будьте осторожны, чтобы на каждом этапе вы могли отменить любые изменения, которые могут произойти. Жесткие ривы намного дешевле, чем ваше время. (если вы не думаете, что это правда). Предоставление средств плюс время затраченного времени должно быть достаточным стимулом.
SDsolar
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.