Comment exécuter du code Python à partir de Sublime Text 2?

309

Je veux configurer un IDE Python complet dans Sublime Text 2.

Je veux savoir comment exécuter le code Python depuis l'éditeur. Est-ce fait en utilisant le système de construction? Comment fait-on ça ?

néo
la source

Réponses:

372

Outils -> Build System -> (choisissez) Python puis:

Courir:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Cela démarrerait votre fichier dans la console qui devrait être au bas de l'éditeur.

Arrêter:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Vous pouvez découvrir où se trouve votre Breakclé ici: http://en.wikipedia.org/wiki/Break_key .

Note: CTRL + Cne pas travailler.

Que faire quand Ctrl + Breakça ne marche pas:

Aller à:

Préférences -> Raccourcis clavier - Utilisateur

et collez la ligne ci-dessous:

{"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} } 

Maintenant, vous pouvez utiliser ctrl+shift+cau lieu deCTRL+BREAK

matiit
la source
9
un texte sublime peut également "détecter automatiquement" la langue. Donc, cela a fonctionné pour moi de simplement CTRL + B
Alexis
4
Assurez-vous que pythonc'est dans votre PATH... le programme d'installation de Windows ne semble pas le faire automatiquement
SeanJA
2
comment arrêtez-vous d'exécuter le programme (python)?
Ib33X
3
La touche de pause de mon clavier ressemble à "Pause / Break", donc pour arrêter le processus, j'ai également ajouté{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
glacial
3
Avoir la ligne {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }dans les liaisons de touches utilisateur et utiliser les ctrl+shift+cimpressions que la construction est [Cancelled]alors que le programme est toujours en cours d'exécution.
Devi
56

Sur Mac OS X, enregistrez votre fichier avec une extension .py. Appuyez sur + B. Il s'exécute dans une fenêtre ci-dessous.

entrez la description de l'image ici

bobobobo
la source
55

Modifier% APPDATA% \ Sublime Text 2 \ Python \ Python.sublime-build

Changez le contenu en:

{
    "cmd": ["C:\\python27\\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

changez la partie "c: \ python27" en n'importe quelle version de python que vous avez dans votre système.

ppy
la source
3
Faites attention à la double barre oblique sur le chemin, Sublime ne le reconnaîtra pas autrement!
Enrico
6
La barre oblique simple fonctionne également à la place de la double barre oblique inversée sous Windows: "C: /Python27/python.exe" (à la Linux et OSX)
Dylan Hogg
7
Pour moi, le chemin était% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
5
Je ne semble pas voir le dossier Python dans Sublime Text 3
HoKy22
44

Pour exécuter, appuyez sur CtrlB(réponse par matiit )

Mais lorsque CtrlB cela ne fonctionne pas , Sublime Text ne peut probablement pas trouver l'interpréteur Python. Lorsque vous essayez d'exécuter votre programme, consultez le journal et recherchez la référence à Python dans le chemin.

[cmd:  [u'python', u'-u', u'C:\\scripts\\test.py']]
[path: ...;C:\Python27 32bit;...]

Le fait est qu'il essaie d'exécuter python via la ligne de commande, le cmd ressemble à:

python -u C:\scripts\test.py

Si vous ne pouvez pas exécuter python à partir de cmd, Sublime Text ne le peut pas non plus.
(Essayez-le vous-même en cmd, tapez python dedans et exécutez-le, la ligne de commande python devrait apparaître)

SOLUTION

Vous pouvez soit modifier la formule de génération Sublime Text, soit le système %PATH%.

  • Pour configurer votre %PATH%:
    * Vous devrez redémarrer votre éditeur pour charger de nouveaux%PATH%

    • Exécutez la ligne de commande * et entrez cette commande: * doit être exécuté en tant qu'administrateur,
      SETX /M PATH "%PATH%;<python_folder>"
      par exemple:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • OU manuellement: (préférable)
      Ajouter ;C:\Python27;C:\Python27\Scriptsà la fin de la chaîne. Définition du chemin dans Win7

  • Pour définir le chemin de l'interpréteur sans jouer avec le système, %PATH%voyez cette réponse par ppy .

Qwerty
la source
Désolé mais pouvez-vous expliquer quelle est la signification de l'option "-u"? Je ne trouve pas l'option de liste des paramètres de ligne de commande à transmettre avec python.exe.
Jim Raynor
@JimRaynor c'est des flux sans tampon stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Vous pouvez utiliser SublimeREPL (vous devez d'abord avoir installé Package Control ).

invis
la source
1
Pourriez-vous expliquer comment envoyer des données d'une fenêtre de script à SublimeREPL, car cela fonctionne pour python, tandis que R fonctionne ...
Matt Bannert
6

Si vous utilisez python 3.x, vous devez modifier le Python3.sublime-build

(Préférences> Parcourir les packages> Python 3)

ressembler à ceci:

{
  "path": "/usr/local/bin",
  "cmd": ["python3", "-u", "$file"],
  "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
  "selector": "source.python"
}
Daniel Romero
la source
4

[Cela s'applique à ST3 (Win), je ne suis pas sûr de ST2]

Pour que la sortie soit visible dans Sublime comme un autre fichier (+ un pour les erreurs), procédez comme suit:

  1. Créez un nouveau système de construction: Tools > Build Systems > New Build System...
  2. Utilisez la configuration suivante:
    {
        "cmd": ["python.exe", "$ file", "1>", "$ file_name .__ STDOUT __. txt", "2>", "$ file_name .__ STDERR __. txt"],
        "sélecteur": "source.python",
        "shell": vrai,
        "rép_travail": "rép_fichier"
    }
  1. Pour votre fichier Python, sélectionnez le fichier de configuration du système de construction ci-dessus: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Maintenant, à côté de votre fichier, par exemple, "file.py"vous aurez "file.__STDOUT__.py"et "file.__STDERR__.py"(pour les erreurs, le cas échéant)
  4. Si vous divisez votre fenêtre en 3 colonnes ou une grille, vous verrez le résultat immédiatement, sans avoir besoin de changer de panneau / fenêtre
ellockie
la source
2

Cool U guys, je viens de trouver ceci:

http://ptomato.wordpress.com/2012/02/09/geek-tip-running-python-guis-in-sublime-text-2/

Il explique (comme l'une des réponses ci-dessus) comment modifier ce exec.py dans le répertoire par défaut .

J'ai eu le problème que mon application PYTHON UI ne démarre pas. J'ai commenté la dernière ligne de l'extrait suivant:

    # Hide the console window on Windows
    startupinfo = None
    if os.name == "nt":
        startupinfo = subprocess.STARTUPINFO()
        #startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW

et, taaadaaaa, je pouvais démarrer mon application en appuyant sur Ctrl + B. Drôle de toute façon, euh? Et un grand merci à celui qui a écrit cet article ;-)

anhoppe
la source
J'ai aussi résolu mon problème. La sortie de la console apparaissait dans Sublime Text 2, montrant que mon code était en cours d'exécution, mais mon interface graphique n'est jamais apparue. J'ai commenté cette ligne, et maintenant elle est là. La sortie de la console va toujours à Sublime Text. Parfait!
Jonathan Lidbeck
1

Vous pouvez accéder à la console Python via «Afficher / Afficher la console» ou Ctrl+ `.

poussée
la source
1
mais il affiche l'erreur suivante: Fichier ". \ exec.py", ligne 109, dans le fichier d'exécution ". \ ntpath.py", ligne 205, dans le nom du fichier dir ". \ ntpath.py", ligne 170, dans le fichier fractionné ". \ ntpath.py", ligne 125, dans splitdrive TypeError: l'objet 'NoneType' est indescriptible
néo
Veuillez donner plus de détails (en développant la question) sur ce que vous faites.
poke
je viens de taper du code python comme imprimer «bonjour», puis de le construire et d'ouvrir la console pour voir cette erreur.
néo
L'utilisation de la console Python ne répond pas à la question . L'interpréteur intégré est uniquement destiné à interagir avec l'API du plugin, et non à des fins de développement général.
mkenyon
1

J'ai résolu ce problème:

> Preferences –> Browse Packages –> Default 

Ouvrez le exec.pyfichier, près de la ligne 41-42, le code devrait ressembler à ceci:

for k, v in proc_env.iteritems():
    proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

puis supprimez-le ou modifiez-le comme:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
Rhea
la source
que fait-il réellement? Comment ça aide?
Qwerty
@Qwerty Il pensait que le programme devrait gérer les exceptions, alors il a mis le code dans un trybloc.
CHM
J'ai essayé ça. Cela n'a pas résolu le problème et a brisé le comportement existant.
Jonathan Lidbeck
1

J'ai rencontré le même problème aujourd'hui. Et voici comment j'ai réussi à exécuter du code python dans Sublime Text 3:

  1. Appuyez sur Ctrl+ B(pour Mac, +B ) pour démarrer le système de génération. Il devrait exécuter le fichier maintenant.
  2. Suivez cette réponse pour comprendre comment personnaliser le système de génération.

Ce que vous devez faire est de remplacer le contenu Python.sublime-buildde

{
    "cmd": ["/usr/local/bin/python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
}

Vous pouvez bien sûr encore le personnaliser en quelque chose qui vous convient.

Huang Chao
la source
1

En python vous v3.x devriez aller à: Tools->Build System->New Build System.

Ensuite, il ouvre la fenêtre de construction sans titre.sublime dans l'éditeur de texte sublime.Entrez le paramètre comme:

{

    "cmd": ["path_to_the_python.exe","-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

Pour voir le chemin, Type following in terminal as:

python
>>> import sys
>>>print(sys.executable)

Vous pouvez créer plus d'un système de construction, mais il doit être enregistré par défaut dans les packages de texte Sublime avec l' extension .sublime-build .

Ensuite, sélectionnez le nouveau système de construction et appuyez sur cltr+bou autre en fonction de votre système d'exploitation.

susan097
la source
0

J'ai eu le même problème. Vous n'avez probablement pas encore enregistré le fichier. Assurez-vous d'enregistrer votre code avec l'extension .py et cela devrait fonctionner.

Onat
la source
0

Une chose à noter sur le système de construction susmentionné : vous pouvez écrire (et utiliser) des .sublime-buildfichiers personnalisés ou même par build_systemsclause de projet (dans les paramètres de votre projet). Cela vous permet de faire des choses utiles comme un lanceur de test sophistiqué avec une sortie de couleurs ANSI .

Pour encore plus de fonctionnalités "full IDE", vous pouvez utiliser l'excellent package SublimePythonIDE :

  • complétion de code (intel)
  • passer à la définition et à la description de l'objet
  • peluchage approprié / pep8
  • prend en charge différents interprètes avec virtualenv

Divulgation: j'ai contribué un PR à ce paquet, et je l'utilise tout le temps, mais il y en a d' autres .

tutuDajuju
la source
0

Utilisez une vraie console python aux côtés de Sublime

Le système de construction de Sublime et SublimeREPL (les réponses ci-dessus) sont limités en ce que vous ne pouvez pas interagir facilement avec les variables de l'espace de travail après avoir exécuté votre fichier.

Si vous souhaitez exécuter un script, puis travailler à la manière de REPL (comme vous le feriez dans un IDE), je recommande d'ouvrir Sublime à côté d'une console IPython. En utilisant AutoHotKey (Windows) ou AutoKey (Linux), vous pouvez configurer cela de telle sorte qu'un seul raccourci copiera le nom de fichier (ou simplement le code sélectionné), puis collez-le dans la console pour exécuter le fichier.

Instructions détaillées pour Linux ou Windows

hugke729
la source