Я использовал Ubuntu 20.04 в течение нескольких месяцев, и все происходит хорошо, однако недавно я побежал в 2 устаревших приложения, которые мне нужны Чтобы начать поддерживать, что потребует Python 2. Как можно лучше понять, у меня есть хотя бы следующие варианты:
Я делаю много аппаратных / программных интерфейсов, для которых использование 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 , и они, как правило, очень хорошо о интеграции пакета.
В это время вот мои вопросы:
Может кто-нибудь, что установил Python 2 в Ubuntu 20.04 уточнить, если это вызвало проблемы? Есть ли какие-либо общие приложения, которые не будут работать после установки Python 2? Любые другие "gotchas", о которых я должен знать или смотреть на это отношение к этому?
Если я продолжу с инструкциями выше ( Alternativaties
, чтобы сделать Python
по умолчанию для Python 2 ) Будет ли это потенциально вызвать проблемы? Любые «Gotchas», относящиеся к этому дополнительным шагам в частности?
У кого-нибудь попробовал конфигурацию виртуальной среды Python 2 (без нативной установки Python 2) в Ubuntu? Это действительно так просто, как эта страница https://computingforgeeks.com/how-with-install-python2-with-virtualenv-on-ubuntu/ делает его звуком? Будут ли работать виртуальные среды для поддержки значительных приложений, которые вызывают другие сценарии, используйте Python
(ожидаем, что он будет Python 2), промежуток / вилка Другие процессы, и т. Д.
Если нативный Python 2 установка на Ubuntu 20.04 И / или / или варианты виртуальной среды проблематичны, есть ли какие-либо другие хорошие варианты, которые я здесь не покрыл?
- Может ли кто-нибудь, кто установил Python 2 в Ubuntu 20.04, уточнить, вызывало ли это проблемы? Существуют ли какие-либо распространённые приложения, которые не будут работать после установки Python 2? Какие ещё "getchas", о которых мне следует знать, или о которых стоит позаботиться?
Вы можете это сделать, но в ближайшем будущем могут возникнуть проблемы с Python 2 - обратите внимание на мои последующие разделы этой заметки!
Установка по умолчанию python2
ДОЛЖНА сделать python
эквивалентным Python 2 - если это не так, то....
- Если я продолжу с инструкциями, приведенными выше (обновления-альтернативы для того, чтобы сделать питон по умолчанию на Python 2), это может привести к проблемам? Какие-нибудь "getchas", относящиеся, в частности, к этому дополнительному шагу?
Для этого уже есть пакеты - python-is-python2
- именно тот, который вам нужен. Установите его после установки Python 2. Это обработает линковку для python
до python2.7
.
- Кто-нибудь пробовал конфигурацию виртуальной среды 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
должны это сделать.
- Если установка на родной Python 2 на Ubuntu 20.04 и/или опции виртуального окружения проблематичны, есть ли другие хорошие опции, о которых я здесь не рассказывал?
Ни родная установка, ни подход PyEnv ничего не сломают. Но есть довольно много вещей, о которых вам нужно знать.
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, то вы столкнётесь с долгосрочными проблемами поддержки - и вы РЕАЛЬНО должны искать замену/обновление процесса.