5 votes

Ubuntu 20.04 - besoin de Python 2 - installation native de Python 2 ou autres options ?

J'utilise Ubuntu 20.04 depuis quelques mois et tout se passe bien, mais j'ai récemment rencontré deux applications anciennes que je dois commencer à supporter et qui nécessitent Python 2. D'après ce que je peux comprendre, j'ai au moins les choix suivants :

  • Revenir à Ubuntu 18.04.5
  • Installer Python 2 dans Ubuntu 20.04
  • Tentative d'installation de Python 2 dans Ubuntu 20.04 mais seulement dans un environnement virtuel
  • Utiliser une VM

Je préférerais rester à l'écart de l'option VM car j'utilise fréquemment des GPU qui ne passeront pas par une VM et aussi car je fais beaucoup d'interfaçage matériel/logiciel pour lequel l'utilisation d'une VM peut causer divers problèmes. De plus, je n'aime pas les VM en général (plantages, problèmes de souris/clavier/écran, performances lentes, etc.)

Je vais être honnête et admettre que je n'utilise pas beaucoup les environnements virtuels, mais je peux dire que je ne suis pas enclin à cette option car les deux applications héritées que je vais supporter appellent Python à divers endroits (appel de fichiers qui démarrent de nouveaux processus, etc.) que je soupçonne un environnement virtuel de ne pas être capable de gérer. De plus, j'ai lu des problèmes avec une version distincte de Python dans un environnement virtuel, par exemple Comment créer un virtualenv python2.7 sur Ubuntu 20.04 .

Ubuntu 18.04.5 était très bien mais je préfère ne pas faire de backdate à ce stade, ce qui me laisse envisager l'installation de Python 2. Après une rapide recherche sur Google, j'ai trouvé de nombreux sites qui expliquent les étapes de l'installation de Python 2 dans Ubuntu 20.04 (ex https://linuxconfig.org/install-Python-2-on-ubuntu-20-04-focal-fossa-linux o https://www.vultr.com/docs/how-to-install-Python-2-on-ubuntu-20-04 ), et la plupart d'entre eux comprennent même des instructions sur la manière d'utiliser les update-alternatives pour faire python par défaut à Python 2, ce qui est une nécessité dans mon cas pour supporter l'une des options héritées que j'ai mentionnées plus tôt.

Je trouve étrange que quelque chose d'aussi important que l'installation d'une toute autre version de Python ne pose pas de problème avec Ubuntu, étant donné que de nombreux utilitaires Linux utilisent aujourd'hui Python. D'autre part, Python 2 est proposé comme paquetage officiel par Canonical. https://packages.ubuntu.com/focal/python2 et ils sont généralement très performants en ce qui concerne l'intégration des paquets.

Voici donc mes questions :

  1. Est-ce que quelqu'un qui a installé Python 2 dans Ubuntu 20.04 peut préciser si cela a causé des problèmes ? Y a-t-il des applications courantes qui ne fonctionnent pas après l'installation de Python 2 ? Y a-t-il d'autres problèmes que je devrais connaître ou auxquels je devrais faire attention ?

  2. Si je poursuis les instructions ci-dessus ( update-alternatives pour faire python par défaut à Python 2), cela risque-t-il de poser des problèmes ? Y a-t-il des "gotchas" liés à cette étape supplémentaire en particulier ?

  3. Quelqu'un a-t-il essayé de configurer un environnement virtuel Python 2 (sans installation native de Python 2) dans Ubuntu ? Est-ce vraiment aussi simple que cette page https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/ le fait sonner ? Les environnements virtuels permettront-ils de prendre en charge des applications importantes qui appellent d'autres scripts, utilisent des python (s'attendant à ce que ce soit Python 2), span/fork d'autres processus, etc.

  4. Si l'installation native de Python 2 sur Ubuntu 20.04 et/ou les options de l'environnement virtuel posent problème, y a-t-il d'autres bonnes options que je n'ai pas abordées ici ?

10voto

Joe the Person Points 5090
  1. Est-ce que quelqu'un qui a installé Python 2 dans Ubuntu 20.04 peut préciser si cela a causé des problèmes ? Y a-t-il des applications courantes qui ne fonctionnent pas après l'installation de Python 2 ? Y a-t-il d'autres problèmes que je devrais connaître ou auxquels je devrais faire attention ?

Vous pouvez le faire, mais il pourrait y avoir des problèmes avec Python 2 dans un futur proche - faites attention aux sections suivantes de ce billet !

Installation python2 par défaut DEVRAIT rendre python soit équivalent à Python 2 - si ce n'est pas le cas, alors...

  1. Si je continue avec les instructions ci-dessus (update-alternatives to make Python default to Python 2), est-ce que cela va potentiellement causer des problèmes ? Y a-t-il des "gotchas" concernant cette étape supplémentaire en particulier ?

Il existe déjà des paquets pour cela - python-is-python2 est celui qu'il vous faut. Installez-le une fois que vous aurez installé Python 2. Il s'occupera des liens pour python a python2.7 .

  1. Quelqu'un a-t-il essayé une configuration d'environnement virtuel Python 2 (sans installation native de Python 2) dans Ubuntu ? Est-ce vraiment aussi simple que cette page https://computingforgeeks.com/how-to-install-python2-with-virtualenv-on-ubuntu/ le fait sonner ? Les environnements virtuels fonctionneront-ils pour supporter des applications importantes qui appellent d'autres scripts, utilisent Python (en s'attendant à ce que ce soit Python 2), span/fork d'autres processus, etc.

Je n'utilise pas de virtualenv simple pour obtenir des installations Python différentes de celles du système Python. J'utilise PyEnv pour cela, parce qu'il fait des installations individuelles de Python dans l'espace utilisateur. Vous avez volonté a besoin des dépendances de construction pour le python y python2.7 installé - sudo apt build-dep python python2.7 devrait le faire.

  1. Si l'installation native de Python 2 sur Ubuntu 20.04 et/ou les options de l'environnement virtuel posent problème, y a-t-il d'autres bonnes options que je n'ai pas abordées ici ?

Ni l'installation native, ni l'approche PyEnv ne casseront quoi que ce soit. Mais il y a un certain nombre de choses dont vous devez être conscient.

Essentiellement... Python 2 est mort - à la fois en amont et dans PyPA PIP (l'outil de gestion de l'information du pip install ... programme)

(NOTE : Certaines distributions peuvent fournir des limité support pour Python 2, mais tout ce qui dépend encore de Python 2 et qui n'est PAS migré vers Python 3 devrait être désapprouvé)

Python PIP ne supporte plus Python 2 depuis quatre jours avec la version 21.0 du système sous-jacent. pip module . Si vous suivez la procédure PyEnv ou une installation individuelle séparée de Python 2, séparée de System Python et de python-pip L'installation d'un système d'alarme est en cours, vous ne pourrez plus obtenir de modules Python pour Python 2 .

Étant donné que vous manipulez un programme Python 2 hérité, Je vous recommande vivement de réécrire le programme pour Python 3. . Vous allez rencontrer une TONNE de problèmes à l'avenir si vous devez maintenir ce programme hérité au-delà d'un an ou deux depuis la date de fin de vie de 2020 - la prise en charge de Python 2 est progressivement supprimée en amont, et comme PIP ne prend plus en charge Python 2, vous allez commencer à rencontrer des problèmes de une tonne des problèmes à l'avenir pour conserver les applications Python 2.

Para le plus il n'est pas extrêmement difficile de porter des programmes Python 2 vers Python 3. Si vos bibliothèques dépendantes (et NON le code sous-jacent de Python 2 lui-même) sont seulement Python 2, vous allez rencontrer des problèmes de support à long terme - et vous devriez VRAIMENT chercher à remplacer / mettre à niveau le processus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X