¿Cómo ejecuto el código Python desde Sublime Text 2?

309

Quiero configurar un IDE completo de Python en Sublime Text 2.

Quiero saber cómo ejecutar el código Python desde el editor. ¿Se hace usando el sistema de construcción? Cómo lo hago ?

neo
fuente

Respuestas:

372

Herramientas -> Sistema de compilación -> (elija) Python y luego:

Correr:

      Tools -> Build

      -or-

      Ctrl + B

      CMD + B  (OSX)

Esto iniciaría su archivo en la consola que debería estar en la parte inferior del editor.

Para detener:

       Ctrl + Break or Tools -> Cancel Build

       Fn + C (OSX)

Puede averiguar dónde está su Breakclave aquí: http://en.wikipedia.org/wiki/Break_key .

Nota: CTRL + Cse no trabajar.

Qué hacer cuando Ctrl + Breakno funciona:

Ir:

Preferencias -> Asignaciones de teclas - Usuario

y pegue la siguiente línea:

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

Ahora, puedes usar en ctrl+shift+clugar deCTRL+BREAK

matiit
fuente
99
El texto sublime también puede "detectar automáticamente" el idioma. Así que funcionó para mí solo CTRL + B
Alexis
44
Asegúrese de que pythonesté en su PATH... el instalador de Windows no parece hacer esto
automáticamente
2
¿Cómo dejas de ejecutar el programa (python)?
Ib33X
3
La tecla de interrupción de mi teclado se parece a "Pausa / Interrupción", así que para detener el proceso también agregué{"keys": ["pause"], "command": "exec", "args": {"kill": true} }
helado
3
Tener la línea {"keys": ["ctrl+shift+c"], "command": "exec", "args": {"kill": true} }en las combinaciones de teclas de usuario y usar ctrl+shift+cimpresiones que la compilación es [Cancelled]mientras el programa aún se está ejecutando.
Devi
56

En Mac OS X, guarde su archivo con una extensión .py. Presione + B. Se ejecuta en una ventana a continuación.

ingrese la descripción de la imagen aquí

bobobobo
fuente
55

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

Cambiar contenido a:

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

cambie la parte "c: \ python27" a cualquier versión de python que tenga en su sistema.

ppy
fuente
3
Presta atención al doble corte en el camino, ¡Sublime no lo reconocerá de otra manera!
Enrico
66
La barra diagonal simple también funciona en lugar de la barra diagonal inversa doble en Windows: "C: /Python27/python.exe" (a la Linux y OSX)
Dylan Hogg
77
Para mí, la ruta era% APPDATA% \ Sublime Text 2 \ Packages \ Python \ Python.sublime-build
aultimus
55
Parece que no veo la carpeta Python en Sublime Text 3
HoKy22
44

Para EJECUTAR presione CtrlB(respuesta por matiit )

Pero cuando CtrlB no funciona , Sublime Text probablemente no puede encontrar el intérprete de Python. Cuando intente ejecutar su programa, vea el registro y encuentre la referencia a Python en la ruta.

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

El punto es que intenta ejecutar python a través de la línea de comando, el cmd se ve así:

python -u C:\scripts\test.py

Si no puede ejecutar Python desde cmd, Sublime Text tampoco puede.
(Pruébelo usted mismo en cmd, escriba python y ejecútelo, debería aparecer la línea de comandos de python)

SOLUCIÓN

Puede cambiar la fórmula de compilación de Sublime Text o el Sistema %PATH%.

  • Para configurar su %PATH%:
    * Deberá reiniciar su editor para cargar nuevos%PATH%

    • Ejecute la línea de comandos * e ingrese este comando: * debe ejecutarse como administrador,
      SETX /M PATH "%PATH%;<python_folder>"
      por ejemplo:SETX /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts"

    • O manualmente: (preferible)
      Agregar ;C:\Python27;C:\Python27\Scriptsal final de la cadena. Establecer ruta en Win7

  • Para configurar la ruta del intérprete sin meterse con el sistema, %PATH%vea esta respuesta con ppy .

QWERTY
fuente
Lo siento, pero ¿puedes explicar cuál es el significado de la opción "-u"? No puedo encontrar la opción de lista de parámetros de línea de comandos para pasar junto con python.exe.
Jim Raynor
@JimRaynor es transmisiones sin búfer stackoverflow.com/questions/14258500/significance-of-u-option
Qwerty
9

Puede usar SublimeREPL ( primero debe tener instalado Package Control ).

invis
fuente
1
¿Podría explicar cómo enviar datos desde una ventana de script a SublimeREPL, porque funciona para Python, mientras que R funciona ...
Matt Bannert
6

Si usa Python 3.x necesita editar el Python3.sublime-build

(Preferencias> Buscar paquetes> Python 3)

verse así:

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

[Esto se aplica a ST3 (Win), no estoy seguro acerca de ST2]

Para tener la salida visible en Sublime como otro archivo (+ uno para errores), haga esto:

  1. Crea un nuevo sistema de compilación: Tools > Build Systems > New Build System...
  2. Use la siguiente configuración:
    {
        "cmd": ["python.exe", "$ archivo", "1>", "$ nombre_archivo .__ STDOUT __. txt", "2>", "$ nombre_archivo .__ STDERR __. txt"],
        "selector": "source.python",
        "shell": cierto,
        "working_dir": "$ file_dir"
    }
  1. Para su archivo Python, seleccione el archivo de configuración del sistema de compilación anterior: Tools > Build Systems > {your_new_build_system_filename}
  2. ctrl + b
  3. Ahora, al lado de su archivo, por ejemplo "file.py", tendrá "file.__STDOUT__.py"y "file.__STDERR__.py"(para errores, si los hay)
  4. Si divide su ventana en 3 columnas, o una cuadrícula, verá el resultado inmediatamente, sin necesidad de cambiar paneles / ventanas
ellockie
fuente
2

Geniales chicos, acabo de encontrar esto:

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

Explica (como una de las respuestas anteriores) cómo editar este exec.py en el directorio predeterminado .

Tuve el problema de que mi APLICACIÓN PYTHON UI no comenzaría. Comenté la última línea del siguiente recorte:

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

y, taaadaaaa, podría iniciar mi aplicación presionando Ctrl + B. Línea divertida de todos modos, ¿eh? Y muchas gracias a quien escribió ese artículo ;-)

anhoppe
fuente
También resolvió mi problema. La salida de la consola aparecía en Sublime Text 2, mostrando que mi código se estaba ejecutando, pero mi GUI nunca apareció. Comenté esa línea, y ahora ahí está. La salida de la consola todavía va a Sublime Text. ¡Perfecto!
Jonathan Lidbeck
1

Puede acceder a la consola de Python a través de "Ver / Mostrar consola" o Ctrl+ `.

dar un toque
fuente
1
pero muestra el siguiente error: Archivo ". \ exec.py", línea 109, en el archivo de ejecución ". \ ntpath.py", línea 205, en el archivo de nombre de directorio ". \ ntpath.py", línea 170, en el archivo dividido ". \ ntpath.py", línea 125, en splitdrive TypeError: el objeto 'NoneType' no se puede suscribir
neo
Proporcione más detalles (ampliando la pregunta) sobre lo que está haciendo.
meter el
Simplemente escribo el código de Python como print 'hola' y luego lo compilo y abro la consola para ver este error.
neo
El uso de la consola de Python no responde la pregunta . El intérprete incorporado está diseñado solo para interactuar con la API del complemento, no para desarrollo general.
mkenyon
1

Resolví este problema:

> Preferences –> Browse Packages –> Default 

Abra el exec.pyarchivo, cerca de la línea 41-42, el código debería verse así:

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

luego bórrelo o edítelo como:

try:    
    for k, v in proc_env.iteritems():
        proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())
except:
    print 'foobar'
ñandú
fuente
¿Qué hace en realidad? Como ayuda
Qwerty
@Qwerty Pensó que el programa debería manejar excepciones, por lo que puso el código en un trybloque.
CHM
Intenté esto No solucionó el problema y rompió el comportamiento existente.
Jonathan Lidbeck
1

Me encontré con el mismo problema hoy. Y así es como logré ejecutar el código de Python en Sublime Text 3:

  1. Presione Ctrl+ B(para Mac, + B) para iniciar el sistema de compilación. Debería ejecutar el archivo ahora.
  2. Siga esta respuesta para comprender cómo personalizar el sistema de compilación.

Lo que hay que hacer ahora es reemplazar el contenido Python.sublime-buildde

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

Por supuesto, puede personalizarlo más a algo que funcione para usted.

Huang Chao
fuente
1

En Python V3.x hay que ir a: Tools->Build System->New Build System.

Luego, aparece la ventana untitled.sublime-build en el editor de texto sublime. Ingrese la configuración como:

{

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

Para ver el camino Type following in terminal as:

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

Puede hacer más de un sistema de compilación, pero debe guardar por defecto dentro de los paquetes de texto sublime con la extensión .sublime-build .

Luego, seleccione el nuevo Sistema de compilación y presione cltr+bu otro según su sistema operativo.

susan097
fuente
0

Yo tuve el mismo problema. Probablemente aún no haya guardado el archivo. Asegúrese de guardar su código con la extensión .py y debería funcionar.

Onat
fuente
0

Una cosa a tener en cuenta sobre el sistema de compilación mencionado anteriormente : puede escribir (y usar) .sublime-buildarchivos personalizados o incluso por build_systemscláusula de proyecto (en la configuración de su proyecto). Esto le permite hacer cosas útiles como un corredor de prueba elegante con salida de colores ANSI .

Para obtener aún más funciones de "IDE completo", puede utilizar el excelente paquete SublimePythonIDE :

  • terminación de código (intel)
  • saltar a definición y descripción de objeto
  • linting adecuado / pep8
  • admite diferentes intérpretes con virtualenv

Divulgación: He contribuyó con un PR de ese paquete, y lo uso todo el tiempo, pero no son los demás .

tutuDajuju
fuente
0

Use una consola de Python real junto con Sublime

Tanto el sistema de compilación de Sublime como SublimeREPL (las respuestas anteriores) están limitados ya que no puede interactuar fácilmente con las variables del espacio de trabajo después de ejecutar su archivo.

Si desea ejecutar un script, luego trabaje de forma REPL (como lo haría en un IDE), entonces le recomiendo que abra Sublime junto con una consola IPython. Usando AutoHotKey (Windows) o AutoKey (Linux), puede configurarlo de manera que un solo acceso directo copie el nombre de archivo (o solo el código seleccionado) y luego pegue esto en la consola para ejecutar el archivo.

Instrucciones detalladas para Linux o Windows

hugke729
fuente