169 votes

Puis-je installer Python 3.x et 2.x sur le même ordinateur Windows ?

Je suis sous Windows et le shell/OS exécute automatiquement Python en fonction des paramètres du registre lorsque vous exécutez un programme en ligne de commande. Est-ce que cela se brisera si j'installe une version 2.x et 3.x de Python sur la même machine ?

Je veux jouer avec Python 3 tout en étant capable d'exécuter des scripts 2.x sur la même machine.

1 votes

Dans ma distribution, Fedora, Python 2.7 est installé à l'adresse suivante /usr/bin/python et Python 3.3 à /usr/bin/python3 . Donne également des noms différents pour Pip et IPython de Python3. Très pratique.

20 votes

@user - Dans l'esprit, je suis d'accord avec votre réponse, mais j'ai été brûlé par cet esprit tellement de fois que je comprends pourquoi quelqu'un demanderait avant de faire le saut.

0 votes

Les réponses semblent toutes porter sur la façon de choisir quel python exécuter et à quel moment. Mon problème était que l'installateur (3.6.2) ne voulait pas s'exécuter car il disait "Une autre version de ce produit est déjà installée." Il s'avère que j'avais déjà la version 3.6.3 installée.

8voto

Cherif Points 6554

Si vous ajoutez les deux aux variables d'environnement, il y aura un conflit car les deux exécutables ont le même nom : python.exe .

Il suffit de renommer l'un d'entre eux. Dans mon cas, je l'ai renommé en python3.exe .

Donc, quand j'exécute python il exécutera python.exe qui est de 2,7 et lorsque j'exécute python3 il exécutera python3.exe qui est de 3,6

enter image description here

7voto

Voilà...

winpylaunch.py

#
# Looks for a directive in the form: #! C:\Python30\python.exe
# The directive must start with #! and contain ".exe".
# This will be assumed to be the correct python interpreter to
# use to run the script ON WINDOWS. If no interpreter is
# found then the script will be run with 'python.exe'.
# ie: whatever one is found on the path.
# For example, in a script which is saved as utf-8 and which
# runs on Linux and Windows and uses the Python 2.6 interpreter...
#
#    #!/usr/bin/python
#    #!C:\Python26\python.exe
#    # -*- coding: utf-8 -*-
#
# When run on Linux, Linux uses the /usr/bin/python. When run
# on Windows using winpylaunch.py it uses C:\Python26\python.exe.
#
# To set up the association add this to the registry...
#
#    HKEY_CLASSES_ROOT\Python.File\shell\open\command
#    (Default) REG_SZ = "C:\Python30\python.exe" S:\usr\bin\winpylaunch.py "%1" %*
#
# NOTE: winpylaunch.py itself works with either 2.6 and 3.0. Once
# this entry has been added python files can be run on the
# commandline and the use of winpylaunch.py will be transparent.
#

import subprocess
import sys

USAGE = """
USAGE: winpylaunch.py <script.py> [arg1] [arg2...]
"""

if __name__ == "__main__":
  if len(sys.argv) > 1:
    script = sys.argv[1]
    args   = sys.argv[2:]
    if script.endswith(".py"):
      interpreter = "python.exe" # Default to wherever it is found on the path.
      lines = open(script).readlines()
      for line in lines:
        if line.startswith("#!") and line.find(".exe") != -1:
          interpreter = line[2:].strip()
          break
      process = subprocess.Popen([interpreter] + [script] + args)
      process.wait()
      sys.exit()
  print(USAGE)

Je viens d'inventer ça en lisant ce fil (parce que c'est ce dont j'avais besoin aussi). J'ai Pythons 2.6.1 et 3.0.1 sur Ubuntu et Windows. Si cela ne fonctionne pas pour vous, postez les corrections ici.

6voto

Alex Points 33

Voici un moyen simple et efficace d'installer Python2 et Python3 sous Windows.

https://datascience.com.co/how-to-install-python-2-7-and-3-6-in-Windows-10-add-python-path-281e7eae62a

Mon affaire : J'ai dû installer Apache Cassandra. J'avais déjà installé Python3 dans mon ordinateur. D : lecteur . Avec de nombreux travaux de développement en cours, je ne voulais pas gâcher mon installation Python3. Et j'avais besoin de Python2 uniquement pour Apache Cassandra.

J'ai donc pris les mesures suivantes :

  1. Téléchargé et installé Python2.
  2. Ajout d'entrées Python2 dans le classpath ( C:\Python27;C:\Python27\Scripts )
  3. Modifié python.exe a python2.exe (comme indiqué dans l'image ci-dessous)

enter image description here

  1. Maintenant, je suis capable d'exécuter les deux. Pour Python 2( python2 --version ) et Python 3 ( python --version ). enter image description here

Mon installation de Python3 est donc restée intacte.

5voto

Cale Sweeney Points 1

Essayez d'utiliser Anaconda.

En utilisant le concept des environnements Anaconda, disons que vous avez besoin de Python 3 pour apprendre la programmation, mais que vous ne voulez pas effacer votre environnement Python 2.7 en mettant à jour Python. Vous pouvez créer et activer un nouvel environnement nommé "snakes" (ou ce que vous voulez), et installer la dernière version de Python 3 comme suit :

conda create --name snakes python=3

C'est plus simple qu'il n'y paraît, jetez un coup d'œil à la page d'introduction ici : Démarrer avec Anaconda

Et ensuite, pour traiter votre problème spécifique d'avoir la version 2.x et 3.x fonctionnant côte à côte, voir :

4voto

James McMahon Points 14356

Pour autant que je sache, Python fonctionne à partir de la ligne de commande en utilisant la variable PATH et non un paramètre du registre.

Ainsi, si vous indiquez la bonne version dans votre PATH, vous l'utiliserez. N'oubliez pas de redémarrer votre invite de commande pour utiliser les nouveaux paramètres PATH.

0 votes

C'est vrai que si vous tapez 'python myscript.py', vous pourriez alors taper C:\python30\python.exe à la place mais l'invite de commande le fait automatiquement si vous tapez juste myscript.py et je ne veux pas casser les 2. ? scripts si j'installe 3.0 sur la même machine.

0 votes

Oh et menthe, il pourrait être utile d'ajouter l'information dans votre premier commentaire à la question, il était un peu nébuleux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X