Comment mettre à jour Python?

135

J'ai la version 2.7 installée depuis le début de 2012. Je ne trouve aucun consensus sur la question de savoir si je dois désinstaller complètement et effacer cette version avant de mettre la dernière version.

"Soft" - supprimer les anciennes versions? Suppression / effacement des anciennes versions? Installation par dessus?

J'ai vu quelque part un processus spécial d'installation / mise à niveau utilisant une méthode de "segmentation" des installations Python, gardant différentes versions séparées et séparées, mais fonctionnelles. Je ne sais pas si c'est la manière standard, de facto.

Je me demande également si Revo devient trop zélé et peut causer des problèmes avec l'effacement des restes encore nécessaires, comme les variables d'environnement / PATH.

(Win7 x64, Python 32 bits)

Coldblackice
la source
1
2.7 est toujours la dernière version - dans la série 2.x, de toute façon. 3.x est incompatible avec les versions antérieures. si vous souhaitez mettre à niveau vers la version 2.7 actuelle, je voudrais simplement installer par dessus.
Evoli

Réponses:

106
MISE À JOUR : 2018-07-06

Ce poste a maintenant près de 5 ans! Python-2.7 cessera de recevoir les mises à jour officielles de python.org en 2020 . De plus, Python-3.7 a été publié . Découvrez Python-Future pour savoir comment rendre votre code Python-2 compatible avec Python-3. Pour mettre à jour conda, la documentation recommande maintenant d'utiliser conda update --alldans chacun de vos environnements conda pour mettre à jour tous les packages et l'exécutable Python pour cette version. De plus, depuis qu'ils ont changé leur nom en Anaconda, je ne sais pas si les clés de registre Windows sont toujours les mêmes.

MISE À JOUR : 2017-03-24

Il n'y a eu aucune mise à jour de Python (x, y) depuis juin 2015, donc je pense qu'il est prudent de supposer qu'il a été abandonné.

MISE À JOUR : 11/11/2016

Comme @cxw le commente ci - dessous , ces réponses sont pour les mêmes versions binaires, et par version binaire, je veux dire 64 bits contre 32 bits. Par exemple, ces réponses s'appliqueraient à la mise à jour de Python-2.7.10 64 bits vers Python-2.7.11 64 bits, c'est -à- dire : la même version bit. Bien qu'il soit possible d'installer deux versions binaires différentes de Python ensemble, cela nécessiterait un piratage, je vais donc garder cet exercice pour le lecteur. Si vous ne voulez pas pirater, je suggère que si vous changez de version bit, supprimez d'abord l'autre version bit.

MISES À JOUR : 2016-05-16
  • Anaconda et MiniConda peuvent être utilisés avec une installation Python existante en désactivant les options pour modifier Windows PATHet le registre. Après l'extraction, créez un lien symbolique vers condadans votre binou installez conda à partir de PyPI. Ensuite , créez un lien symbolique appelé conda-activateà activatedans le dossier bin racine Anaconda / Miniconda. Maintenant, Anaconda / Miniconda est exactement comme Ruby RVM. Utilisez simplement conda-activate rootpour activer Anaconda / Miniconda.
  • Le Python portable n'est plus en cours de développement ou de maintenance.

TL; DR

  • En utilisant Anaconda ou miniconda , exécutez simplement conda update --allpour garder chaque environnement conda à jour,
  • même version majeure de Python officiel ( par exemple 2.7.5), il suffit d'installer sur l'ancienne ( par exemple 2.7.4),
  • version majeure différente de Python officiel ( par exemple 3.3), installez côte à côte avec les anciens, définissez les chemins / associations pour pointer vers dominant ( par exemple 2.7), raccourci vers autre ( par exemple en BASH $ ln /c/Python33/python.exe python3).

La réponse dépend:

  1. Si OP a 2.7.x et souhaite installer une version plus récente de 2.7.x, alors

    • si vous utilisez le programme d' installation MSI du site officiel Python , installez simplement sur l'ancienne version, le programme d'installation émettra un avertissement qu'il supprimera et remplacera l'ancienne version; la recherche dans "programmes installés" dans "panneau de configuration" avant et après confirme que l'ancienne version a été remplacée par la nouvelle version; les nouvelles versions de 2.7.x sont rétrocompatibles, donc c'est totalement sûr et donc à mon humble avis, plusieurs versions de 2.7.x ne devraient jamais être nécessaires.
    • si vous construisez à partir des sources, vous devriez probablement créer un répertoire frais et propre, puis pointer votre chemin vers la nouvelle version une fois qu'elle a passé tous les tests et que vous êtes sûr qu'elle a été construite avec succès, mais vous souhaiterez peut-être conserver l'ancienne. construire autour parce que la construction à partir de la source peut parfois avoir des problèmes. Consultez mon guide pour créer Python x64 sur Windows 7 avec SDK 7.0 .
    • si vous installez à partir d'une distribution telle que Python (x, y) , consultez leur site Web. Python (x, y) a été abandonné. Je pense que les mises à jour peuvent être gérées à partir de Python (x, y) avec leur gestionnaire de paquets, mais les mises à jour sont également incluses sur leur site Web . Je n'ai pas pu trouver de référence précise, alors peut-être que quelqu'un d'autre pourra en parler. Semblable à ActiveState et probablement Enthought, Python (x, y) indique clairement qu'il est incompatible avec d'autres installations de Python:

      Il est recommandé de désinstaller toute autre distribution Python avant d'installer Python (x, y)

    • Enthought Canopy utilise un MSI et s'installera respectivement dans Program Files\Enthoughtou home\AppData\Local\Enthought\Canopy\Apppour tous les utilisateurs ou par utilisateur. Les nouvelles installations sont mises à jour à l'aide de l'outil de mise à jour intégré. Consultez leur documentation .
    • ActiveState utilise également un MSI afin que les nouvelles installations puissent être installées par-dessus les anciennes. Consultez leurs notes d'installation .

      Autres installations Python 2.7 Sous Windows, ActivePython 2.7 ne peut pas coexister avec d'autres installations Python 2.7 (par exemple, une version Python 2.7 de python.org). Désinstallez toute autre installation de Python 2.7 avant d'installer ActivePython 2.7.

    • Sage vous recommande de l'installer sur une machine virtuelle et fournit un fichier image Oracle VirtualBox qui peut être utilisé à cette fin. Les mises à niveau sont gérées en interne en émettant la sage -upgradecommande.
    • Anaconda peut être misconda à jour en utilisant la commande :

      conda update --all

      Anaconda / Miniconda permet aux utilisateurs de créer des environnements pour gérer plusieurs versions de Python, y compris Python-2.6, 2.7, 3.3, 3.4 et 3.5. Les installations racine Anaconda / Miniconda sont actuellement basées sur Python-2.7 ou Python-3.5.

      Anaconda perturbera probablement toutes les autres installations Python. L'installation utilise le programme d'installation MSI. [ MISE À JOUR : 2016-05-16] Anaconda et Miniconda utilisent désormais des programmes d' .exeinstallation et fournissent des options pour désactiver les PATHmodifications de Windows et du registre.

      Par conséquent, Anaconda / Miniconda peut être installé sans perturber les installations Python existantes en fonction de la façon dont il a été installé et des options sélectionnées lors de l'installation. Si le programme d' .exeinstallation est utilisé et que les options de modification de Windows PATHet du registre ne sont pas désactivées, toutes les installations Python précédentes seront désactivées , mais la simple désinstallation de l'installation d'Anaconda / Miniconda devrait restaurer l'installation Python d'origine, à l'exception peut-être des Python\PythonCoreclés de registre Windows .

      Anaconda / Miniconda fait les modifications de Registre suivantes quelles que soient les options d'installation: HKCU\Software\Python\ContinuumAnalytics\avec les touches suivantes: Help, InstallPath, Moduleset PythonPath- enregistre ces clés trop Python officiel, mais sous Python\PythonCore. Les informations de désinstallation sont également enregistrées pour Anaconda \ Miniconda. À moins que vous ne sélectionniez l'option «S'inscrire auprès de Windows» lors de l'installation, elle ne crée pas PythonCore, donc les intégrations telles que Python Tools pour Visual Studio ne voient pas automatiquement Anaconda / Miniconda. Si l'option d'enregistrement d'Anaconda / Miniconda est activée, je pense que vos clés de registre Python Windows existantes seront modifiées et que la désinstallation ne les restaurera probablement pas.

    • Les mises à jour de WinPython , je pense, peuvent être gérées via le panneau de configuration WinPython .
    • PortablePython est plus développé . Il n'avait pas de méthode de mise à jour. Peut - être mises à jour peuvent être décompressés dans un répertoire frais et App\lib\site-packageset App\Scriptspeuvent être copiés dans la nouvelle installation, mais si cela ne fonctionne pas de réinstaller tous les paquets auraient été nécessaires. Utilisez pip listpour voir quels packages ont été installés et leurs versions. Certains ont été installés par PortablePython. Utilisez easy_install pippour installer pip s'il n'a pas été installé.
  2. Si OP a 2.7.x et veut installer une version différente, par exemple <= 2.6.x ou> = 3.xx, alors installer différentes versions côte à côte est très bien. Vous devez choisir la version de Python (le cas échéant) à associer aux *.pyfichiers et celle que vous souhaitez sur votre chemin, bien que vous devriez pouvoir configurer des shells avec des chemins différents si vous utilisez BASH . AFAIK 2.7.x est rétrocompatible avec 2.6.x, donc les installations côte à côte à IMHO ne sont pas nécessaires, mais Python-3.xx n'est pas rétrocompatible, donc ma recommandation serait de mettre Python-2.7 sur votre chemin et d'avoir Python-3 soit une version optionnelle en créant un raccourci vers son exécutable appelé python3 (c'est une configuration courante sous Linux). Le chemin d'installation par défaut officiel de Python sur Windows est

    • C: \ Python33 pour 3.3.x (dernier 29/07/2013)
    • C: \ Python32 pour 3.2.x
    • & c.
    • C: \ Python27 pour 2.7.x (dernier 29/07/2013)
    • C: \ Python26 pour 2.6.x
    • & c.
  3. Si OP ne met pas à jour Python, mais se contente de mettre à jour des packages, ils peuvent souhaiter se pencher sur virtualenv pour séparer les différentes versions des packages spécifiques à leurs projets de développement. Pip est également un excellent outil pour mettre à jour les packages. Si les packages utilisent des installateurs binaires, je désinstalle généralement l'ancien package avant d'installer le nouveau.

J'espère que cela dissipe toute confusion.

Mark Mikofski
la source
1
Hey Mark, j'ai une question pour les débutants. Pensez-vous qu'il est réellement important de passer de 2.7.x à 3.3.x? Je commence à utiliser python et j'ai l'ancienne version installée, mais depuis que je commence, je voulais apprendre la version la plus récente (sauf s'il n'y a que de très petites différences). Quel est votre appel à ce sujet? Merci de votre aide.
Matteo
7
J'utiliserais les deux. Si vous êtes sur MS Windows, vous obtiendrez dans votre dossier racine C:\Python27et C:\Python33, si vous êtes sur Mac, vous verrez /Library/Frameworks/Python/Versions/2.7.xet /Library/Frameworks/Python/Versions/3.3.xet si vous êtes sous Linux, vous avez probablement déjà installé les deux. La tradition est d'utiliser Python-2.7 et de lier symboliquement le binaire de Python-3.3 vers python33. Voir également Python2orPython3 et Python 2 vs Python 3 . Personnellement, je suis trop paresseux pour passer à la version 3.3.
Mark Mikofski
2
Merci pour la réponse détaillée! Avec 2.7, l'installation sur l'ancien ne fonctionnait pas lorsque l'un était 32 bits et l'autre 64 bits. Je me suis retrouvé avec deux entrées dans "Programmes et fonctionnalités", toutes deux pointant vers C: \ Python27. Seriez-vous prêt à ajouter à votre réponse que les gens ne devraient remplacer que 32 par 32 et 64 par 64? Merci!
cxw
1
@cxw merci pour les commentaires. Si vous voulez avoir à la fois 32 et 64 ensemble, il existe des moyens. Probablement le plus facile est d'utiliser ce qu'on appelle une installation « admin » de la version 32 bits dans C:\Python27_x86de la ligne de commande: msiexec /a "python-2.7.11.msi" TARGETDIR="C:\Python27_x86" /qn /l*v python27_x86_install.log. Une autre option consiste à construire à partir des sources ou à essayer Bootstrap Python .
Mark Mikofski
1
Le programme d'installation MSI indique qu'il remplacera le dossier 2.7, cependant, si vous stockez d'autres scrips dans le dossier racine 2.7, il ne les supprimera pas;)
XXN
6

La meilleure solution consiste à installer les différentes versions de Python dans plusieurs chemins.

par exemple. C: \ Python27 pour 2.7 et C: \ Python33 pour 3.3.

Lisez ceci pour plus d'informations: Comment exécuter plusieurs versions de Python sur Windows

Wei Yen
la source
Voilà comment je fais. Je lance les versions 32 et 64 bits de python 2.7.xx et 3.5.xx et IronPython 2.7.xx. J'utilise Eclipse pour le développement et je choisis le chemin python lors du débogage. Lors de l'exécution d'un script, je définis simplement le chemin vers la version de l'interpréteur que je souhaite utiliser. La mise à jour de 3.5.0 à 3.5.3 offre une option de mise à jour simple vers une nouvelle installation.
Bill Kidd
5
  • Les installateurs officiels de Python .msi sont conçus pour remplacer:

    • toute version micro précédente (en xyz , z est «micro») car elles sont garanties rétrocompatibles et compatibles binaires
    • une installation "snapshot" (construite à partir des sources) avec n'importe quelle version micro
  • Un programme d'installation de snapshot est conçu pour remplacer tout snapshot par une version micro inférieure.

(Voir le code responsable pour 2.x , pour 3.x )

Toutes les autres versions ne sont pas nécessairement compatibles et sont donc installées à côté de l'existant. Si vous souhaitez désinstaller l'ancienne version, vous devrez le faire manuellement. Et désinstallez également tous les modules tiers que vous aviez pour cela:

  • Si vous avez installé des modules à partir de bdist_wininstpackages (Windows .exe), désinstallez-les avant de désinstaller la version, ou le programme de désinstallation peut ne pas fonctionner correctement s'il a une logique personnalisée
  • les modules installés avec setuptools/ pipqui résident dans Lib\site-packagespeuvent simplement être supprimés par la suite
  • les packages que vous avez installés par utilisateur, le cas échéant, résident dans %APPDATA%/Python/PythonXY/site-packageset peuvent également être supprimés
ivan_pozdeev
la source
1

J'ai toujours juste installé la nouvelle version par dessus et je n'ai jamais eu de problèmes. Assurez-vous que votre chemin est mis à jour pour pointer vers la nouvelle version.

Zack
la source
1
Lorsque vous installez par dessus, retient-il les modules externes comme pygame, bs4, lxml, etc. que j'ai téléchargés?