Preparando Sublime Text 3 para programar en Python

Uno de los lenguajes de programación que más interés ha despertado en el mundo de la Seguridad Informática y Hacking, es sin duda Python.

Python es un lenguaje de programación interpretado y orientado a objetos, muy fácil de aprender y potente, desde mi punto de vista, recomendado para cualquier persona que desee aprender a programar, y mucho más, si desea orientar sus conocimiento a la seguridad de la información, muchas de las herramientas de hacking que se usan hoy en día, están escritas en este lenguaje.

Sublime_Text_LogoEn este tutorial, os mostraré como preparar Sublime Text 3 para empezar a desarrollar en Python.

Sublime Text es un potente y ligero editor de texto, su sistema de resaltado de sintaxis, su interfaz de color oscuro y el amplio abanico de plugins desarrollados por sus usuario, lo convierten sin lugar a dudas, en la mejor opción para desarrollar en Python.

1) Descargando Python

Antes de empezar a preparar Sublime Text, vamos a descargar Python, podemos hacerlo desde el sitio oficial en https://www.python.org/downloads/

python1

Si nos fijamos, Python dispone de dos versiones actualmente, la 3.5.1 y 2.7.11, recomiendo que descarguemos las dos, aunque la mayoría de las herramientas se programan en la 2.7.11.

python3La instalación de Python es bastante simple, descargamos las versiones y ejecutamos el paquete descargado, durante la instalación es bastante importante que dejemos marcado la siguiente opción Add Python.exe to Path:
python2 Está opción nos permitirá llamar a Python desde cualquier ruta en la que nos encontremos, únicamente escribiendo python en la consola, seguido de la ruta de nuestro archivo, ejemplo:

python C:\mis_programas_python\hola_mundo.py

Bueno, ya tenemos Python instalado en nuestro sistema, vamos a descargar ahora Sublime Text, lo podemos descargar desde aquí https://www.sublimetext.com/3

python4

Como vemos, es multiplataforma, lo podemos usar tanto en Windows, como en MAC o Linux, en mi caso lo descargaré para Windows.

2) Preparando Sublime Text 3

Después de la instalación de Sublime Text, lo primero que debemos de hacer es instalar el gestor de paquetes. El gestor de paquetes nos permite añadir y eliminar complementos de terceros que mejorarán el entorno de desarrollo.

Para instalar el gestor de paquetes, debemos de abrir la consola, esto podemos hacerlo con la combinación de tecla CTRL + ` o  accediendo al menú View – Show Console.

Una vez abierto la consola, copiamos y pegamos el siguiente código de https://packagecontrol.io/installation

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

y pulsamos Enter. El gestor de paquetes tardará unos segundos en instalarse, una vez instalado, ya podremos instalar plugins de terceros en nuestro Sublime Text.

3) Instalación de plugins

A continuación muestro una lista de plugins que no deben de faltarnos, para instalarlos, debemos de abrir la Paleta de Comandos, podemos abrirla con la combinación de tecla CTRL + SHIFT + P o en el menú Tools – Command Palette.

Una vez abierta la Paleta de Comandos, nos tiene que aparecer lo siguiente:

python5

Elegiremos la opción Install Package e instalaremos los siguientes puglins:(algunos plugins es posible que no aparezcan, adjuntaré links para descargarlos manualmente):

3.1) Anaconda

Anaconda es un paquete de Python extremadamente potente para Sublime que convierte nuestro editor de texto en un completo IDE, algunas de sus características son:

  • Autocompletado de código Python.
  • Muestra errores de sintaxis y PEP8.
  • Ofrece documentación de Python.
  • Refactor (cambiar el nombre) del objeto.
  • Autoimport.
  • Muchas más opciones.

3.2) SidebarEnhancements

Muy importante, ofrece una barra lateral desde la cual podemos crear, borrar, editar, etc los archivos.

python6

Podemos descargarlo de aquí: https://github.com/titoBouzout/SideBarEnhancements

3.3) Alignment

Un simple plugin que permite alinear el código, si te gusta programar de forma muy organizada y entender el código en un simple vistazo, este plugin no puede faltar.

python7

python8

Para utilizar : Seleccionar las líneas que desee alinear y pulsar CTRL + ALT + A

3.3) Colorpicker

Nos muestra una paleta de colores sobre la marcha.

python9

Para utilizar : CTRL + SHIFT + C

3.4) GitGutter

Este es un plugin que nos dirá qué lineas han cambiado desde la última modificación. Un indicador aparecerá al lado de los números de línea.

3.5) FTPSync

Si trabajamos con archivos alojados en un servidor FTP remoto, este plugin nos será de gran ayuda, hay que tener en cuenta que no soporta SFTP, para configurarlo iremos a Preferences > Package Settings > FTPSync > Setup FTPSync.

python10

Si necesitamos un plugin SFTP podemos utilizar el siguiente, es gratuito para un único usuario https://wbond.net/sublime_packages/sftp.

4) Personalización

4.1) Instalar diccionario de Español.

Si programamos y escribimos en castellano, es posible que veamos constantemente las palabras subrayadas, y esto puede ser molesto, ya que Sublieme Text entiende que están mal escritas, para decirle a Sublime Text que diccionario usar, primero tendremos que descargarlo.

Podemos descargar el diccionario desde aquí: https://github.com/titoBouzout/Dictionaries

Nos harán falta los siguientes:

  • Spanish.aff
  • Spanish.dic
  • Spanish.txt

Una vez descargados los archivos, accedemos a la carpeta Packages dentro de la carpeta de configuración de nuestro editor Sublime text, esta carpeta de encuentra en:

C:\Users\nombre_usuario\AppData\Roaming\Sublime Text 3\Packages

Dentro de este directorio, deberemos de crear una carpeta llamada Language - Spanish y copiamos los archivos descargados dentro de él.

Después, para activarlo, bastará con ir a View > dictionary > Language – Spanish > Spanish y activarlo, y una vez activado le indicaremos a Sublime Text que a partir de ahora nuestro corrector ortográfico sea el Español en View > Spell check o pulsando la tecla F6.

4.2) Desactivar PEP8 en Anaconda

PEP8 describe la Guía de Estilo de Código Python, es decir, cómo debemos escribir código Python de manera consistente y elegante.

python11Por defecto viene activado con Anaconda y puede ser molesto los constantes avisos si hemos descargado código de la red, si no queremos cumplir a raja tabla con este estilo lo podemos desactivar modificando el archivo Anaconda.sublime-settings en Preferences – Package Settings – Anaconda – Settings Default, modificando la siguiente linea a false.
python12

4.3) Combinación de teclas más usadas

Es muy aconsejable pasar un tiempo aprendiendo los atajos de teclado más usados, ya que nos ahorraran mucho tiempo cuando estemos programando. Los accesos directos que más utilizo son los siguientes:

  • CTRL + K : Borra la línea actual.
  • CTRL + X : Corta la línea actual.
  • CTRL + SHIFT + ARRIBA : Mueve el texto resaltado arriba.
  • Ctrl + Shift + ABAJO : Mueve el texto resaltado abajo.
  • CTRL + W : Cierra la pestaña actual.
  • CTRL + KK : Borra todo desde el cursor hasta el final de la línea.
  • CTRL + F : Buscar.
  • CTRL + H : Buscar y reemplazar.
  • CTRL + KU : Convertir el texto seleccionado a mayúsculas.
  • CTRL + KL : Convertir el texto seleccionado a minúsculas.
  • CTRL + KB : Alternar la barra lateral.
  • CTRL + [ : Indentar la línea actual.
  • CTRL + ] : Sangrar la línea actual.
  • CTRL + / : Comentar / Descomentar la línea o la selección actual.
  • ALT + SHIFT + [NÚMERO] : Divide la pantalla en X columnas (máximo 4)
  • CTRL + 0 : Centra la barra lateral.
  • CTRL + 1-4 : Centra la columna 1-4.
  • CTRL + SHIFT + 1-4 : Mueve el archivo a la columna 1-4.

Lista completa de atajos para Sublime Text:

http://docs.sublimetext.info/en/latest/reference/keyboard_shortcuts_win.html

5. Compilar y mostrar en la consola

Una vez hemos terminado nuestro programa, es hora de probarlo, Sublime Text cuenta con un atajo de teclado CTRL + B para compilar y ejecutar nuestro código, el problema, es que puede que no lo ejecute correctamente si no lo hemos configurado bien.

Vamos a configurar Sublime para que cuando pulsemos el atajo de teclado, nos abra una ventana de consola de comandos y ejecute el código automáticamente, nos vamos a Tools -> Build System -> New Build System y pegamos el siguiente código:

{
    "cmd": ["start", "cmd", "/k", "c:/python27/python.exe", "$file"],
    "selector": "source.python",
    "shell": true,
    "working_dir": "$file_dir"
}

python13

Guardamos el archivo y seleccionamos nuestro ejecutable de Python en Tools -> Build System

python14

El código anterior es válido para ejecutar Python 2.7, si os fijáis, tengo uno para Python 2.7 y otro para Python 3, para crear el de Python 3, únicamente cambiamos la ruta del ejecutable a la hora de crear el archivo.

Ahora al pulsar CTRL + B veremos como se ejecuta nuestro código en la consola de comandos.

python15

Esto es todo, espero os sirva de ayuda.

Saludos!!

67 comentarios en “Preparando Sublime Text 3 para programar en Python”

  1. Avatar

    Hola, estoy empezando con Python y tengo una duda. Me puse con este simple ejercicio y tengo un pequeño problema:
    nombre = input(“Introduce tu nombre: “)
    print(“¡Hola ” + nombre + “!”)

    Doy a ctrl+B y me sale en consola “Introduce tu nombre: ”
    Lo introduzco pero al volver a dar a ctrl+B para que ya me salga lo del print, me vuelve a salir de nuevo “Introduce tu nombre:”

    ¿Qué estoy haciendo mal? Tengo configurado bien mi Sublime Text 3.

    Muchas gracias.

  2. Avatar

    Hola Javier, fenomenal artículo. Yo lo utilizo en Mac y el problema es que no consigo que me salga el python3, a pesar de tenerlo instalado. Solo me enseña el 2.7. Y es que en la instalación de Python del Mac no me aparece la casilla para añadir el Path como en windows. Sabes como puedo solucionarlo? Gracias.

    1. Avatar

      hola debes crear con pipenv un entorno virtual para que corras python3, de todos modos si quieres ver o ejecutar python 3 solo invocalo $python3 file.py, si quieres ver la version instalada $python3 –version. espero haberte ayudado. si es para configurar la opcion build MBlackSmith ya te dio la opcion

  3. Avatar

    BUENAS TARDES JAVIER, Tu sabes mucho, tengo un problema con un programa de linux , me ayudarias con la licencia de ADVANCE FILE AND PRINT SERVER 3.5, 2DL105473, Ncesito licence code y license data, como puedo hacer, te agradezco

  4. Avatar

    Hola Javier, muchas gracias por la información. Todo me ha funcionado de maravilla 🙂 Me colaboras con lo siguiente, deseo que me funcione la combinación de teclas para acceder al REPL de Python. Me han recomedado: ctrl +alt+b, pero no me funciona. Hice lo siguiente, que alguien recomendó:

    Jorge Puentes M.
    Hace 11 meses
    Si desean crear una combinación de teclas para acceder al REPL de Python pueden hacer lo siguiente:

    1. Vayan a Preferences > Key Bindings – User
    2. En el panel de User (la parte derecha) coloquen el siguiente código dentro de los corchetes que aparecen:

    { «keys»: [«ctrl+alt+b»], «command»: «run_existing_window_command», «args»:
    {
    «id»: «repl_python_run»,
    «file»: «config/Python/Main.sublime-menu»
    }}

    3. Guarden (Ctrl + s)

    Me puede sugerir algo? Te lo agradezco.

    1. Avatar

      karen que tal revise tu post y me di cuenta que el codigo esta mal escrito por lo demas los pasos que indicas son los correctos, lo pegas entre los dos corchetes y lo guardas con con (control + s) el codigo correcto es este: { «keys»: [«ctrl+alt+b»], «command»: «run_existing_window_command», «args»:
      {
      «id»: «repl_python_run»,
      «file»: «config/Python/Main.sublime-menu»
      }}

  5. Avatar

    Hola.

    Antes que nada muchas gracias por la información. Sin embargo tengo problemas con la compilación; al presionar CTRL + B me compila bien y me muestra la salida de datos, pero cuando utilizo el comando input() para la entrada de datos no me permite ingresar nada. ¿Cómo puedo arreglar esto para poder ingresar los datos y que el programa trabaje con ellos?

    1. Avatar

      No se puede hacer desde el Sublime Text «En ninguna de sus versiones por ahora…» sin embargo la opción disponible al día de hoy es abrir una ventana emergente en símbolo de sistema Cmd.exe y para ello de forma mas cómoda es que debes aplicar en tu Sublime la personalización que recomiendan en este Blog más arriba la: (5. Compilar y mostrar en la consola) y empleas para ello el código que se deja adjunto:
      {
      «cmd»: [«start», «cmd», «/k», «c:/python27/python.exe», «$file»],
      «selector»: «source.python»,
      «shell»: true,
      «working_dir»: «$file_dir»
      }

      Solo que deberás tener cuidado con la ruta y nombre de la carpeta donde tienes instalado tu programa de Python (Puede ser la ultima versión y es: Python37), cuando crees el New Build System, Colocale un nombre sencillo por ejemplo: Python37_Cmd o Python27_Cmd la versión que tengas…. y luego cuando corras tu programa de Python que solicita ingreso de algún dato solo asegúrate que antes de aplicar Ctrl+B seleccionalo antes en en Tools > Build System > Python37_Cmd del programa Sublime que ya creaste, así de ese modo se abrirá automáticamente la consola Cmd desde el Sublime Text sin tener que abrirla e invocar el archivo con el programa que hiciste, la cual es la forma en que se hace sino se tiene este tip´s que dice el Blog…

      Nota: la instancia «/k» del interprete de comando «cmd» es para Ejecutar el comando especificado en cadena pero manteniendo activa (abierta la ventana) del símbolo de sistema que se ha abierto.

      Espero te sirva de ayuda..

  6. Avatar

    Hola, cuando en el punto 5 «Compilar y mostrar en la consola», tras copiar el código que indicas dices «guardamos el archivo…», ¿dónde guardamos el archivo «untitled.sublime-build»? Imagino que la ruta en c:/ que indicas tendré que cambiarla y poner la mía propia donde se ha instalado python, no?? El caso es que, al ir a Tools -> Build System, no me sale la opción de Python_cmd. Si pudieras ayudarme, te estaría muy agradecido.

  7. Avatar

    Hola! me aparece esto en la consola y no se por qué:

    El sistema no puede encontrar la ruta especificada.
    [Finished in 0.0s with exit code 1]
    [shell_cmd: bin\go get -x -u github.com/DamnWidget/godef golang.org/x/tools/cmd/guru github.com/fatih/motion github.com/josharian/impl github.com/nsf/gocode github.com/zmb3/gogetdoc gopkg.in/alecthomas/gometalinter.v1]
    [dir: C:\Program Files\Sublime Text 3]
    [path: C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\WINDOWS\System32\OpenSSH\;C:\Users\cesar.retamal\AppData\Local\Programs\Python\Python37-32\Scripts\;C:\Users\cesar.retamal\AppData\Local\Programs\Python\Python37-32\;C:\Users\cesar.retamal\AppData\Local\Microsoft\WindowsApps;C:\Program Files (x86)\Cmder;]

    La segunda pregunta es cómo poner una sintaxis por defecto, quiero que sea la de python; pero a la hora de buscar en view->syntax->Open all with current extension as, me aparecen todas «desactivadas» (no las puedo apretar).

    Gracias!

  8. Avatar

    hola amigo tengo un error que no he podido solucionar espero tu ayuda muchas gracias,

    [WinError 2] El sistema no puede encontrar el archivo especificado
    [cmd: [‘start’, ‘cmd’, ‘/k’, ‘C:\\Users\\Soto\\Desktop\\cursoPython\\primeras_funciones.py’]]
    [dir: C:\Users\Soto\Desktop\cursoPython]
    [path: C:\Program Files\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:\Users\Soto\AppData\Local\Programs\Python\Python37-32\Scripts\;C:\Users\Soto\AppData\Local\Programs\Python\Python37-32\;C:\Users\Soto\AppData\Roaming\npm;C:\Program Files\Sublime Text 3\]
    [Finished]

  9. Avatar

    Hola Javier, muy buena tu info, consulta estoy trabajando sobre sublime 3 y no logra pasar a la pantalla donde las lineas de programacion están numeradas y ejecutas una vez finalizado el programa, ahora tengo la pantalla con estos signos» >>> » , como hago parar cambiarlo? muchas gracias, Kika

    1. Avatar

      este amigo
      {
      «cmd»: [«python3», «-i», «-u», «$file»],
      «file_regex»: «^[ ]File \»(…?)\», line ([0-9]*)»,
      «selector»: «source.python»
      }

      en caso de que sea python dos el que estas usando solo lo cambias en donde dice python 3 por el dos

    1. Javier Olmedo

      Buenas Daniel,
      En la carpeta principal del proyecto, tienes que pulsar el botón verde de la derecha, uno que pone «Clone or download»
      Si los quieres por separado, copia el texto y pégalo en un txt, después lo renombras y listo.
      Espero haberte ayudado.
      Saludos,
      Gracias.

  10. Avatar

    amigos este tutorial me funciona perfecto en windows pero en linux la ruta de acceso al ejecutable de python es otra historia, me pregunto como serian los comandos para agregar el interprete en este caso

  11. Avatar

    arreglado:, tiene que ver con la ruta del sistema, al meterla como variable de entorno basta con cambiar la ruta por la variable.

    {
    «cmd»: [«start», «cmd», «/k», «python», «$file»],
    «selector»: «source.python»,
    «shell»: true,
    «working_dir»: «$file_dir»
    }

    ahora funciona estupendamente xD

  12. Avatar

    Hola Javi,
    Ni que decir que todo perfecto pero, justo en la ultima parte me he atrancado. He hecho el *.sublime-build pero cuando ejecuto, el cmd me devuelve: «El sistema no puede encontrar la ruta especificada.»
    he comprobado que efectivamente me lleva al «working_dir» pero se ve que no coje bien el nombre del archivo.

    Alguna idea? hay algun otro argumento que se le pueda pasar para que funcione?

    Me encanta tu blog, me he animado a aprender python por ti que lo sepas.

    1. Javier Olmedo

      Hola Juan,

      Ya he visto que has conseguido solucionar el problema tu mismo, me alegra que mi blog te haya servido para animarte a aprender Python, espero que aprendas rápido y bien, estoy seguro que se convertirá en uno de tus lenguajes favoritos para programar.

      Saludos!!
      Gracias.

    2. Avatar

      amigo yo hice la prueba y al parece no es necesario colocar ni la ruta del archivo de python ni nada, es decir, el abre el cmd y solo necesita el nombre del archivo que ejecutar, es decir asi:
      {
      «cmd»: [«start», «cmd», «/k», «$file»],
      «selector»: «source.python»,
      «shell»: true,
      «working_dir»: «$file_dir»
      }

  13. Avatar

    Hola! me parece genial todos los plugins y consejos. De hecho me los instalado todos! Como apunte, creo que te falta algo imprescindible!! Configurar los 4 espacios 🙂 un saludo y gracias!

Deja tu comentario

Ir arriba