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.
En 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/
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.
La 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:
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
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:
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.
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.
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.
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.
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.
Por 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.
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"
}
Guardamos el archivo y seleccionamos nuestro ejecutable de Python en Tools -> Build System
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.
Esto es todo, espero os sirva de ayuda.
Saludos!!
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.
depues de introducir tu nombre, solo debes dar . Si das ctrl-B de nuevo, lo estas volviendo a ejecutar
a que le debo dar?
Hola, al intentar ejecutar el primer comando, falla (Error validating download (got 817937144c34…)
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.
Hola Jose,
Siento que no haya podido servirte de más el artículo.
Espero que algún visitante pueda ayudarte, desconozco como se configura en Mac.
Saludos!!
{
«cmd»: [«python3», «-i», «-u», «$file»],
«file_regex»: «^[ ]File \»(…?)\», line ([0-9]*)»,
«selector»: «source.python»
}
ese es el texto que debes poner.
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
Muy buen post.
¿Sabes cómo editar el built para que el cmd se cierre pulsando enter luego de terminar el programa?
Como principiante en Python, excelente artículo!!!! muy bien explicado muy claro, ha funcionado perfectamente!!!. Muchas gracias!
Hola María,
Me alegra saber que te sirvió de ayuda.
Saludos!!
Hola Javier:
Gracias por la información.
He seguido los pasos y todo va OK.
Me alegro jmguemes,
Saludos!!
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
Hola Clara,
Ponte en contacto con el soporte del software, ellos podrán ayudarte mucho mejor que yo.
Saludos!!
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.
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»
}}
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?
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..
Muchas gracias Rafael por tu aporte.
Recibe un saludo!!
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.
Debes guardarlo, preferiblemente, en tu carpeta de trabajo.
Este archivo es el que cargará Sublime para saber por defecto que python debe de ejecutar y la ruta donde se encuentran los archivos .py
hola como hago para descargar los archivos del diccionario en español
?
Hola Gabriel,
Lo tienes en el punto 4.1 ¿Tienes algún problema al realizar los pasos?
Saludos!!
Descargamos:
wget -c https://github.com/titoBouzout/Dictionaries/raw/master/Spanish.dic
wget -c https://github.com/titoBouzout/Dictionaries/raw/master/Spanish.aff
wget -c https://github.com/titoBouzout/Dictionaries/raw/master/Spanish.txt
Gracias por tu aportación!!
Soy usuario de mac y lo adecué a mis necesidades, pero me fue de gran ayuda tu post. GRACIAS!!
Excelente Articulo, Muy Completo & Util, me funciono todo a la perfeccion!
Muchas gracias por leer el blog, me alegro que te ayudara!!
Me muestra esto:
Package Control: Error downloading channel. HTTP error 404 downloading https://packagecontrol.io/channel_v3.json.
Me muestra esto:
Package Control: Error downloading channel. HTTP error 404 downloading https://packagecontrol.io/channel_v3.json.
Es posible que hayas perdido la conexión a Internet o algo esté impidiendo que lo descargues (Antivirus, Firewall, Proxy).
Excelente artículo que ha sido de mucha ayuda. Muchas gracias.
Me alegra que te haya sido de ayuda!!
de verdad excelente articulo a mi me ha servido un montón!
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!
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]
Buenas Gerardo,
Parece que es un error de variables del sistema.
¿Tienes python 2 instalado?
Saludos!!
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
Buenas Kika,
¿Llegas a salir del programa? ¿O una vez que termina de ejecutar te aparecen esos signos?
Saludos!!
hola el codigo de pegar para ajustar el compilador donde debo guardarlo?
Hola Sebastián,
En el punto 5 lo tienes.
Saludos!!
Como haría para compilarlo en el terminal de MAC AYUDA
Cual seria el código ?????
veo que estos consejos son para windows, que codigo tendria que poner en linux mint para compilar y mostrar en consola?
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
Gracias Marco por tu aporte!!
Saludos.
gracias por la respuesta. un saludo
esta bueno el de ananconda muchas gracias
Gracias Rajoy.
Saludos!!
que buen aporte, está buenisimo, me pregunto si tendrás algo parecido a esto pero para trabajar con HTML, JS y PHP. Gracias por tu aporte
Gracias Fernando,
No, no tengo algo parecido, pero quizás puedes probar con Visual Studio Code, es lo que uso yo y va genial para desarrollo web.
Saludos!!
muy bueno gracias pero tengo un problema con el paso 4 ¿Cómo descargo los diccionario de GitHub? solo me aparecen lineas de código
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.
hola, excelente pero tengo una duda sobre el punto 5, como cambio la ruta del ejecutable para python 3?
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
{
“cmd”: [“python3”, “-i”, “-u”, “$file”],
“file_regex”: “^[ ]File \”(…?)\”, line ([0-9]*)”,
“selector”: “source.python”
}
Estimado, para el paso 5. si tenemos MacOS, cuál sería el código para que aparezca una pantalla a parte cuando se ejecute el código?
Saludos,
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
Muchas gracias por compartirlo, Juan.
De esta manera podemos ayudar a otros compañeros del blog.
Saludos!!
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.
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.
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»
}
Bueno días Luis,
El post lo hice hace tiempo, es posible que haya cambiado.
De todas maneras, gracias por tu aportación.
Un Saludo!
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!
Hola Laura,
Me alegra saber que te parecen interesantes mis consejos.
Gracias por leer mi blog.
Saludos.
hola oye necesito ayuda no puedo configurar el compilar y mostrar en consolo en sublime txt 3 ayuda