Ubuntu 20.04 - нужен Python 2 - родной Python 2 Установите против других вариантов?

Я использовал Ubuntu 20.04 в течение нескольких месяцев, и все происходит хорошо, однако недавно я побежал в 2 устаревших приложения, которые мне нужны Чтобы начать поддерживать, что потребует Python 2. Как можно лучше понять, у меня есть хотя бы следующие варианты:

  • Вернуться к Ubuntu 18.04.5
  • Установить Python 2 в Ubuntu 20.04
  • Попытка установить Python 2 В Ubuntu 20.04, но только в виртуальной среде
  • используют виртуальную среду

Я делаю много аппаратных / программных интерфейсов, для которых использование VM может привести к различным проблемам. Также я не люблю VMS, как правило, (аварии, мышь / клавиатура / на экран Hiccups, медленные характеристики и т. Д.)

Я буду честен и признать, что я не использую виртуальную среду, однако я могу сказать, что я Не склонны к этому варианту, поскольку 2 устаревшие приложения, которые я собираюсь поддерживать вызов Python различных мест (вызова файлов, начнут новые процессы и т. Д.), Что я подозреваю, что виртуальная среда не сможет обрабатывать. Кроме того, я читал о проблемах со всей отдельной версией Python в виртуальной среде, Ex Как создать Python2.7 Virtualenv на Ubuntu 20.04 .

Ubuntu 18.04.5 Была великолепна, но я бы предпочел не сделать в этом вопросе, что оставляет меня рассмотреть возможность установки Python 2. При быстром густолите я нашел много сайтов, которые объясняют шаги для установки Python 2 в Ubuntu 20.04 ( ex https://linuxconfig.org/install-python-2-on-ubuntu-20-04-focal-fossa-linux или https://www.vultr.com/docs/ Как--install-python-2-on-ubuntu-20-04 ), и большинство из них даже включают в себя инструкции по использованию Alternativaties , чтобы сделать Python По умолчанию на Python 2, что является необходимостью в моем случае для поддержки одного из наследующих параметров, которые я упоминал ранее.

Я считаю странным, что что-то подходящее, как установка целой другой версии Python, не вызывает проблем с Ubuntu, так как многие утилиты Linux сегодня используют Python. С другой стороны, Python 2 предлагается как официальный пакет Canonical https://packages.ubuntu.com/focal/python2 , и они, как правило, очень хорошо о интеграции пакета.

В это время вот мои вопросы:

  1. Может кто-нибудь, что установил Python 2 в Ubuntu 20.04 уточнить, если это вызвало проблемы? Есть ли какие-либо общие приложения, которые не будут работать после установки Python 2? Любые другие "gotchas", о которых я должен знать или смотреть на это отношение к этому?

  2. Если я продолжу с инструкциями выше ( Alternativaties , чтобы сделать Python по умолчанию для Python 2 ) Будет ли это потенциально вызвать проблемы? Любые «Gotchas», относящиеся к этому дополнительным шагам в частности?

  3. У кого-нибудь попробовал конфигурацию виртуальной среды Python 2 (без нативной установки Python 2) в Ubuntu? Это действительно так просто, как эта страница https://computingforgeeks.com/how-with-install-python2-with-virtualenv-on-ubuntu/ делает его звуком? Будут ли работать виртуальные среды для поддержки значительных приложений, которые вызывают другие сценарии, используйте Python (ожидаем, что он будет Python 2), промежуток / вилка Другие процессы, и т. Д.

  4. Если нативный Python 2 установка на Ubuntu 20.04 И / или / или варианты виртуальной среды проблематичны, есть ли какие-либо другие хорошие варианты, которые я здесь не покрыл?

4
задан 27 January 2021 в 09:15

1 ответ

  1. Может ли кто-нибудь, кто установил Python 2 в Ubuntu 20.04, уточнить, вызывало ли это проблемы? Существуют ли какие-либо распространённые приложения, которые не будут работать после установки Python 2? Какие ещё "getchas", о которых мне следует знать, или о которых стоит позаботиться?

Вы можете это сделать, но в ближайшем будущем могут возникнуть проблемы с Python 2 - обратите внимание на мои последующие разделы этой заметки!

Установка по умолчанию python2 ДОЛЖНА сделать python эквивалентным Python 2 - если это не так, то....

  1. Если я продолжу с инструкциями, приведенными выше (обновления-альтернативы для того, чтобы сделать питон по умолчанию на Python 2), это может привести к проблемам? Какие-нибудь "getchas", относящиеся, в частности, к этому дополнительному шагу?

Для этого уже есть пакеты - python-is-python2 - именно тот, который вам нужен. Установите его после установки Python 2. Это обработает линковку для python до python2.7.

  1. Кто-нибудь пробовал конфигурацию виртуальной среды Python 2 (без встроенной установки Python 2) в Ubuntu? Действительно ли это так же просто, как это звучит на этой странице https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/? Будет ли виртуальная среда работать для поддержки важных приложений, которые вызывают другие скрипты, используют python (ожидая, что это будет Python 2), span/fork другие процессы и т.д.?

Я не использую обычную virtualenv, чтобы получить установки Python, которые отличаются от системы Python. Для этого я использую PyEnv, потому что он делает индивидуальные установки Python в пользовательском пространстве. Вам понадобятся сборочные зависимости для установленных питона и питона2.7 - sudo apt build-dep python2.7 должны это сделать.

  1. Если установка на родной Python 2 на Ubuntu 20.04 и/или опции виртуального окружения проблематичны, есть ли другие хорошие опции, о которых я здесь не рассказывал?

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

По существу... Python 2 мертв - и вверх по течению, и в PyPA PIP (установка pip ... программа)

(ПРИМЕЧАНИЕ: Некоторые дистрибутивы могут предоставлять ограниченную поддержку Python 2, но все, что все еще зависит от Python 2 и НЕ переносится на Python 3, должно быть нахмурено)

Python PIP не будет поддерживать Python 2 по состоянию на четыре дня назад с выпуском 21.0 базового pip модуля . Если вы последуете за установкой PyEnv или отдельной установкой Python 2 отдельно от System Python и python-pip, то вы больше не сможете получить Python-модули для Python 2.

Учитывая, что вы работаете с наследственной программой на Python 2, я настоятельно рекомендую вам поработать над переписыванием программы для Python 3. Вы столкнётесь с ТОНом проблем в будущем, если вам придётся поддерживать эту унаследованную программу более года или двух с даты EOL 2020 - поддержка Python 2 будет постепенно сворачиваться вверх по течению, а с прекращением поддержки PIP на Python 2 вы столкнётесь с тоннами проблем в будущем, не давая приложениям на Python 2 остаться в рабочем состоянии.

Для большинства программ не так уж и сложно портировать программы на Python 2 на Python 3. Если ваши зависимые библиотеки (а НЕ сам код, лежащий в основе Python 2) являются только Python 2, то вы столкнётесь с долгосрочными проблемами поддержки - и вы РЕАЛЬНО должны искать замену/обновление процесса.

9
ответ дан 18 March 2021 в 23:40

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

Похожие вопросы: