Partage
  • Partager sur Facebook
  • Partager sur Twitter

Lire une commande faite sur Emacs

Débutant(e)

Sujet résolu
    24 décembre 2010 à 23:56:26

    Bonjour à tous,

    J'ai écrit un code sur Emacs et je me demandais s'il était possible de le lire à partir du terminal (j'utilise un Mac).

    Lorsque j'ouvre Python sur le terminal, impossible de lancer/executer le code en même temps sur la même fenetre.
    J'ai essayé avec:

    python mon_fichier.py

    sur le terminal, sans succès.

    Si j'écris sur une autre fenêtre du terminal : open Desktop/mon_fichier.py le fichier s'ouvre sur Emacs, mais pas sur le terminal. Ce que j'aimerais c'est pouvoir lancer python sur le terminal et pouvoir executer mon code écrit sur emacs à partir du terminal également.

    Par exemple si j'ai écrit:

    Largeur = a + b
    a = 3
    b= 4

    et si je tape "Largeur" sur le terminal, j'aimerais qu'il execute la commande après avoir lancé le code. Est-ce que c'est possible ?

    Merci de votre aide & Joyeux Noêl!

    (PS. C'est peut être un sujet qui a déjà été traité, mais j'ai regardé certaines solutions porposées sur le forum et malheureusement je n'ai pas réussi à résoudre mon problème)
    • Partager sur Facebook
    • Partager sur Twitter
      25 décembre 2010 à 3:25:34

      Citation : Albanne

      python mon_fichier.py

      sur le terminal, sans succès.


      C'est la bonne commande pour exécuter un script pourtant, mais vu l'exemple que tu donne après, il est normal que le script n'affiche rien par défaut, si tu veux un résultat dans la console, il faut utiliser print pour afficher ce que tu veux.


      Citation : Albanne

      Par exemple si j'ai écrit:

      Largeur = a + b
      a = 3
      b= 4


      Hum, là ça marche pas, dans Python l'ordre est important, tu ne peux pas faire a + b si a et b n'existent pas.
      Par contre si tu veux que Largeur soit une fonction qui calcule a + b, c'est possible, mais c'est pas cette syntaxe, ce serait plutôt quelque chose comme :
      def Largeur(a, b):
          return a + b
      
      # avec des globales (déconseillé)
      def Largeur():
          global a
          global b
          return a + b
      

      Ou encore
      Largeur = lambda a, b : a + b
      



      Citation : Albanne

      et si je tape "Largeur" sur le terminal, j'aimerais qu'il execute la commande après avoir lancé le code. Est-ce que c'est possible ?


      Genre une console Python, mais dans laquelle tu pourrais exécuter les fonctions du module que tu es en train de coder sans avoir à retaper le code ?
      C'est possible en utilisant C-c C-c, qui charge et exécute le module courant dans un terminal Python intégré à Emacs. Il doit sans doute y avoir une commande pour charger le module sans l'exécuter, mais je m'en rappelle plus...
      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        25 décembre 2010 à 20:55:25

        Merci pour ta réponse LoupSolitaire!

        Je crois que mon exemple est mal choisi (et ce n'est pas là mon problème).

        Lorsque j'ouvre python sur le terminal. J'ai ça:

        Citation : Mon ordi

        macbook-pro-de-X:~ X$ python
        Python 2.5.1 (r251:54863, Sep 1 2010, 22:03:14)
        [GCC 4.0.1 (Apple Inc. build 5465)] on darwin
        Type "help", "copyright", "credits" or "license" for more information.


        Et lorsque je tape la commande pour ouvrir mon fichier, ca m'affiche une erreur de syntaxe:

        Citation : Message d'erreur

        >>> python essai.py
        File "<stdin>", line 1
        python essai.py
        ^
        SyntaxError: invalid syntax
        >>>


        Mon fichier essai.py étant sauvé sur le Bureau, j'ai essayé en entrant le chemin complet, mais ca ne donne rien non plus.



        • Partager sur Facebook
        • Partager sur Twitter
          25 décembre 2010 à 21:18:57

          Tu te compliques trop... Il te suffit d' entrer à l'invite de commande:
          macbook-pro-de-X:~ X$ python essai.py
          • Partager sur Facebook
          • Partager sur Twitter
            25 décembre 2010 à 22:19:03

            J'avais déjà essayé, ca ne marche pas non plus :(


            Citation

            macbook-pro-de-X:~ X$ python essai.py
            /System/Library/Frameworks/Python.framework/Versions/2.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'essai.py': [Errno 2] No such file or directory


            • Partager sur Facebook
            • Partager sur Twitter
              26 décembre 2010 à 2:56:18

              T'es pas dans le bon dossier faut croire.
              • Partager sur Facebook
              • Partager sur Twitter

              Blond, bouclé, toujours le sourire aux lèvres...

                28 décembre 2010 à 1:56:11

                Merci d'avoir essayé de m'aider quand même. Je crois que je vais reprendre "Apprendre Python" depuis le début :)
                • Partager sur Facebook
                • Partager sur Twitter
                  28 décembre 2010 à 10:03:45

                  Salut.

                  $ cd /chemin/vers/le/dossier/qui/contient/ton/fichier/
                  $ python essai.py


                  Salut.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Zeste de Savoir, le site qui en a dans le citron !
                    4 janvier 2011 à 23:08:21

                    Avec le python-mode fourni par défaut avec emacs, C-z t'affiche un terminal python dans un buffer emacs, C-c C-c évalue ton buffer dans ce terminal.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      5 janvier 2011 à 16:57:22

                      Merci à tous. J'ai enfin réussi à ouvrir ce fichier grâce à vous!
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Lire une commande faite sur Emacs

                      × 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