Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonctionnement des éditeurs (Idle, Pyscripter...)

Sujet résolu
    14 janvier 2013 à 12:12:28

    Bonjour.

    Je souhaite utilisé Python sur une clé USB. Je suis passé par l'intermédiare de Portableapps et j'ai téléchargé PortablePython_2.7.3.1 et PortablePython_3.2.1.1. L'éditeur associé est Pyscrypter.

    Je suis plus habitué à Idle pour l'instant. J'ai donc téléchargé MovableIDLE-0.1.0 et il fonctionne sur la clé, avec Python 2.4.3.

    J'ai utilisé le tout sur un ordinateur sans Python.

    Ma question est de savoir comment IDLE sait où se trouve Python ? Je n'ai pas installé Python 2.4.3, ni lancé Python avant IDLE. Pourtant il interprète correctement des programmes que je lui soumets. Une partie de Python y est-elle incluse ?

    Deuxième question, est-il possible de faire en sorte qu'il utilise Python 3.2.1.1.

    Merci par avance.

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 janvier 2013 à 16:57:23

      IDLE est un programme écrit en python, et il nécéssite donc un interpréteur python pour s'exécuter. Une fois qu'il est lancé (et pour cela IDLE n'a pas besion de savoir où se trouve l'interpréteur), il utilise (à ce qu'il me semble) la fonctioin exec ou un autre truc du même genre. IDLE utilise donc l'interpréteur avec lequel il a été lancé. Dans ce cas, il faut juste récupérer le code source de IDLE pour python3 et l'executer.
      • Partager sur Facebook
      • Partager sur Twitter
        14 janvier 2013 à 19:23:47

        Avant que la question ne soit posée (anticipation, tqvu), le code-source de IDLE se récupère en clonant le dépôt Mercurial de CPython. Cela présuppose que tu aies installé Mercurial sur ta machine.

        Tu peux choisir la version voulue en changeant de branche. Par exemple pour avoir le code-source de IDLE correspondant à Python 3.2, il suffit de taper ceci dans un terminal :

        hg clone http://hg.python.org/cpython     # Attention, cette commande prend du temps, c'est normal.
        cd cpython
        hg up 3.2
        

        IDLE se trouve dans le dossier cpython/Lib/idlelib (pour s'en convaincre, il suffit d'exécuter le fichier __main__.py qui s'y trouve).

        • Partager sur Facebook
        • Partager sur Twitter
        Zeste de Savoir, le site qui en a dans le citron !
          14 janvier 2013 à 20:40:44

          Merci. Je vais essayé ces quelques lignes.

          Il suffirait ensuite de copier les fichiers pour Idle sur une clé pour pouvoir utiliser tout Python à travers cet éditeur ?

          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2013 à 22:09:39

            Exactement.

            Quant au fait qu'IDLE 2.4 tourne sur ta machine, c'est sûrement parce qu'il se sert de Python 2.7 (c'est reverse-compatible à l'intérieur de la branche 2.x). L'inverse (IDLE 2.7 et Python 2.4) ne fonctionnerait probablement pas, par contre.

            • Partager sur Facebook
            • Partager sur Twitter
            Zeste de Savoir, le site qui en a dans le citron !
              11 février 2013 à 11:47:15

              En regardant les fichiers présents dans les versions portables de Python, je me suis aperçu que Idle est livré avec.

              Il y a un fichier Idle.py qui, à mon avis, indique où trouver la version de Idle à lancer.

              try:
                  import idlelib.PyShell
              except ImportError:
                  # IDLE is not installed, but maybe PyShell is on sys.path:
                  try:
                      from . import PyShell
                  except ImportError:
                      raise
                  else:
                      import os
                      idledir = os.path.dirname(os.path.abspath(PyShell.__file__))
                      if idledir != os.getcwd():
                          # We're not in the IDLE directory, help the subprocess find run.py
                          pypath = os.environ.get('PYTHONPATH', '')
                          if pypath:
                              os.environ['PYTHONPATH'] = pypath + ':' + idledir
                          else:
                              os.environ['PYTHONPATH'] = idledir
                      PyShell.main()
              else:
                  idlelib.PyShell.main()
              

              Je dispose donc de trois versions de Python : une installlée sur mon ordi (3.2.3), et deux sur clé USB en version portable (3.2.1 et 2.7.3). Lorsque j'exécute Idle.pyw, c'est systématiquement la version 3.2.3 qui est utilisée.

              Dans les versions portables, il y a aussi un fichier idle.bat, qui dois lancer Idle, mais à partir du répertoire dans lequel ce fichier se trouve :

              @echo off
              rem Start IDLE using the appropriate Python interpreter
              set CURRDIR=%~dp0
              start "IDLE" "%CURRDIR%..\..\pythonw.exe" "%CURRDIR%idle.pyw" %1 %2 %3 %4 %5 %6 %7 %8 %9

              En associant, dans le launcher portableapps.com, ces fichiers à une ligne nommée Idle2.7 ou Idle3.2, c'est à chaque fois la bonne version qui est utilisée.

              Voilà qui règle simplement mon problème.

              Merci encore.

              Pour terminer :), pourriez-vous m'expliquer le fonctionnement de ce fichier .bat ?

              -
              Edité par Apranax 11 février 2013 à 11:50:35

              • Partager sur Facebook
              • Partager sur Twitter

              Fonctionnement des éditeurs (Idle, Pyscripter...)

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown