Як я можу видалити python 2.7 після встановлення python 3.3?


20

Я успішно встановив python 3.3 на Ubuntu 12.10. Оскільки мені не потрібні кілька версій python, я хочу видалити існуючий python 2.7. Коли я намагаюся це зробити, використовуючи

sudo apt-get remove python2.7

Ubuntu попереджає мене, що є багато системних компонентів, які також будуть видалені. Це виглядає дійсно страшно.

Отже, чи є спосіб видалити python 2.7, не видаляючи залежних від системи компонентів, або я можу спрямовувати цих утриманців на використання python 3.3?


2
Я б не рекомендував це. Версія Python зовсім не настільки сумісна, тому у старих сценаріїв можуть виникнути проблеми, якщо у вас не буде правильної версії.
вихідний

ви праві, python3.3 заявив, що він несумісний з python 2.7. Отже, краще просто зберегти. Дякую за пораду!
Phoenix bai

Відповіді:


23

Ви не можете.

З вікі Ubuntu / Python :

Довгострокові плани (наприклад, 14.04)

Перемістіть Python 2 до Всесвіту, перенесіть усі додатки Python в основному на Python 3. Ми ніколи не повністю позбудемося Python 2.7, але оскільки Python 2.8 також ніколи не буде, а Python 2.7 буде майже 4 років до моменту випуск 14.04 LTS, настав час повернути Python 2 до Всесвіту.

Це означає, що багато базових пакетів важко залежать від 2,7, і все одно знадобиться багато часу, щоб перенести речі. Зауважте, що в Python 3 є численні зміни несумісних змін назад - це не регулярне оновлення пакету.

Якщо ви дійсно хочете позбутися Python 2.7, вам доведеться почекати випуску 14.04, але гарантій немає.


3
Зараз 16.04.
muru

Зараз 18.04.
Франческо Паса

Це 19.04 фу #! & Зараз
Генаріто

5

Ти не можеш і цього не хочеш.

Python різко змінився між 2,7 та 3,0 та порушив зворотну сумісність. Сценарії Python, написані для версії 2.7, які використовуються для підтримки великої кількості інфраструктури системи, не обов'язково працюватимуть належним чином із Python 3.x. Ці сценарії потрібно оновити для роботи з новою версією, і поки цього не стане, вам потрібно буде тримати Python 2.7 навколо.

Ось чому ви помічаєте таку велику кількість залежностей від старого Python - від цього залежить система. Крім того, немає жодної шкоди, якщо обидві версії Python встановлені в одній системі. І ви можете в майбутньому зіткнутися з додатками, які все ще використовують Python 2.7, тому тримати його навколо є хорошою ідеєю.


3

Прийшов сюди в 2019 році, тому що я розробляю в Python3 за замовчуванням і прийшов до того ж висновку, що і OP, побачивши, що буде видалено після запуску apt purge python

Оскільки я дуже хотів зателефонувати на Python3 python, я побіг

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

Таким чином, якщо Python2.7 все ще потрібен, його можна викликати явно з, python2.7а просто виклик pythonза замовчуванням Python3 через символічне посилання.

У мене немає жодних скриптів рівня bash, які викликають python2.7, pythonтому це зміна не буде руйнівним - в той час як інші системи потребують відповідної корекції своїх сценаріїв.

Основним бар'єром для розподілу, що перемикає команду python з python2 на python3, є не поломка в дистрибутиві, а натомість поломка приватних скриптів сторонніх розробників, розроблених sysadmins та іншими користувачами.

- Команда "python" на Unix-подібних системах

Ця відповідь не є прямою відповіддю на ОП, але як хтось, хто мав подібне запитання, це функціональність, яку я шукав, коли я думав видалити 2.7. Замість того, щоб видаляти, просто розставляйте пріоритети, яким користуватися python.


1
Мене це вражає поганою ідеєю. Будь-які старі сценарії, створені для Python 2, дзвонять /usr/bin/python, тоді як майже кожен сценарій, зроблений для Python 3, буде відомий про зміни та зателефонує python3в даний час. Якщо pythonвказувати на python2.7це, менше шансів зламати речі.
vidarlo

Я б сказав, що це залежить від середовища, як я сказав, що я не створюю сценарії, які вимагають python2, і працюю в 3 - тоді як, якби я змінив подібну зміну на одній із наших станцій на роботі з автоматизованими сценаріями, це було б дуже руйнівно .
saniboy

Чи є конкретні системні процеси, за якими ви зможете перерахувати цей виклик / usr / bin / python? Я завжди
saniboy

Я знаходжу досить багато в 18.04. grep -r "/usr/bin/python" /usr/bin/повинен дати вам короткий огляд. Це, ймовірно, не відключить вашу систему, але це може зробити так, щоб деякі речі не працювали. Наприклад solaar.
vidarlo

1
У системі, яку я перевірив, є 39, які не мають явного посилання на python3 або python2. Все це, ймовірно, python2. Звичайно, це залежить від того, що ви встановили, але я не бачу жодної великої причини це робити ...
vidarlo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.