Як переключитися назад на 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

Я пройшов установку в VM, і відбулося наступне.

  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. [Додати $HOME/binдо $PATH] (Якщо його вже встановлено за замовчуванням ~/.profile)
  5. Relogin.

Таким чином, дзвінок python3розпочнеться з Анаконда.


Важливим моментом є те, що оригінал /usr/bin/pythonвсе ще є і все ще вказує на це python2.7. Наслідки наявності python->python3на вашому шляху залежать від того, як називається конкретний сценарій.

Якщо шебанг #!/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 після того, як буде змінено її (змінивши типову на анаконда або 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команда буде також.


Оновлення, тому що я вважаю, що ви правильні. Це добре мати в базі даних. Проте чи можу я попросити вас бути більш чіткими щодо номерів версій програмного забезпечення, що використовується?
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 за замовчуванням.

Зрештою, це питання.

Коли ви запитаєте систему, which pythonви можете довіритись правильності рядка для використання в першому рядку програм Python у стилі командного рядка.

У моїй ситуації всі мої файли скриптів командного рядка Python продовжують виконуватись чудово.

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

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


Підсумок для мене: Після встановлення anacondaдля подальшого використання у мене не було жодних ударів зі швидкістю чи проблем.


Саме тоді я перебуваю в процесі ... Щойно закінчив переатестацію всього минулого програмного забезпечення.


Наступним кроком є ​​власне використання деяких цікавих речей, які обіцяні в пакеті.


Отже, я маю підозрювати, що інші просто встановлені anacondaтам повинні бути більше вашими ситуаціями.

З мого досвіду це зовсім не проблема.


FYI, у мене є повна наукова робоча станція, яка працює над сонячною динамікою. Також про ефемерні та супутникові взаємодії. ЦЕ ПОВИНЕН працювати. Так що я не просто поні в усьому цьому. Я встановлюю по одній речі за один раз, а потім переконуюсь, що все до цього працює. Потім переходжу до наступного. SciPy, Matplotlab і т. Д. (Моя перевага для створення сюжету - гнуплот). Тому, будь ласка, зрозумійте, що я надсилаю цю відповідь як точку даних з живої робочої системи 24x7 в академічному дослідницькому середовищі. Це не тестове середовище - це щоденне виробництво.
SDsolar

Також, як я нагадав у коментарі вище, ДУМАЙТЕ ПРОФЕСІЙНО. Ці системи використовуються дослідниками високого рівня у всьому світі. -> Переконайтесь, що у вашому завантажувальному диску є клон, перш ніж робити якісь основні оновлення системи. ddКоманда швидко і легко, і з'єднання SATA легко. Немає підстав уникати захисту вашої системи. Будьте обережні, що на кожному кроці ви можете повернути будь-які зміни, які можуть статися. Жорсткі річки набагато дешевші, ніж ваш час. (якщо ви не вважаєте, що це правда). Грошові кошти плюс скорочення часу повинні бути достатніми стимулами.
SDsolar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.