""
Mostrando las entradas con la etiqueta IDE. Mostrar todas las entradas
Mostrando las entradas con la etiqueta IDE. Mostrar todas las entradas

miércoles, 29 de enero de 2025

Que es Ipython

 

IPython y comandos mágicos

Author: Eduardo July 27, 2021
6 min. read
 
IPython, es sin duda una de mis herramientas favoritas en cuanto al desarrollo en Python se refiere. Después de crear mi entorno de desarrollo, mi siguiente tarea es siempre instalar IPython. No importa si el proyecto es relativamente pequeño o no, si es web o no. No importa, IPython siempre estará para todos mis proyectos. 🧐
 
Por la gran facilidad que esta herramienta nos ofrece, tanto para crear como testear código Python, me gustaría explicarte en detalle qué es IPython y cómo podemos sacarle el máximo provecho en nuestros procesos de desarrollo. 🐍

Es una herramienta que sin duda vale muchísimo la pena, así que te invito a que te quedes al final de esta entrega.

Bien, si más introducción comencemos con el tutorial.

Si nunca habías escuchado acerca de IPython, bueno, aquí te lo explico. IPython es una Shell interactivo de Python, un Shell con baterías incluida.

IPython no se encuentra dentro de la biblioteca estándar de Python, por lo tanto para poder utilizar esta herramienta será necesario instalarla. Para ello ejecutamos el siguiente comando.

>> pip install ipython 

Una vez la librería se haya instalado, podremos ingresar a su Shell interactivo ejecutando en terminal el comando 'ipython'.


 

Dentro del Shell seremos capaces de escribir y ejecutar código Python.

Lo primero que podemos notar es el auto completado. Haciendo uso de la tecla tab podremos auto completar variables, funciones, clases, imports, rutas etc... 

Algo sin duda super útil para nuestro desarrollo.

Pero lo más interesante de IPython no son sus colores o el auto completado, no. Lo interesante de IPython son sus comandos mágicos.

Los comandos mágicos no son más que comandos que nos permitirán resolver tareas cotidianas en el desarrollo. Estos comandos se identifican por el prefijo porcentaje (%).

Existen una gran cantidad de comandos mágicos, sin embargo para este post me gustaría compartir los que considero los más relevantes, los que sin duda usaremos en nuestro día a día. 



 

Comandos Mágicos.

Comencemos con el comando %time. Un comando mágico que nos permitirá conocer cuanto tiempo a tomado una tarea ser completada. U comando super útil cuando nos encontramos midiendo rendimientos de performance.

Para utilizar este comando basta con llamarlo y pasar como argumento la tarea de la cual queremos conocer su tiempo de ejecución.

>>def python_task():
>>    import time
>>    time.sleep(2)
>>    print('Fin de la tarea!')

>>%time python_task() 

>>>>Fin de la tarea!
>>>>CPU times: user 310 µs, sys: 841 µs, total: 1.15 ms
>>>>Wall time: 2 s

En este caso para fines prácticos mi función toma una pequeña siesta de 2 segundos. 🥱

Ahora, si lo que deseamos medir no es una función o método, si no un bloque de código, haremos uso del doble porcentaje (%%).

>>In [6]: import time

>>In [7]: %%time
>>   ...: for i in range(3):
>>   ...:     time.sleep(1)

>>>>CPU times: user 889 µs, sys: 13 µs, total: 902 µs
>>>>Wall time: 3 s

Ahora hablemos del comando %run, un comando que, como su nombre nos dice, nos permite ejecutar scripts directamente en el Shell de IPython. Veamos.

Imaginemos que tenemos el siguiente archivo .py; main.py

>>for x in range(0, 10):
>>    print(x)

Para ejecutarlo directamente en el Shell usaremos el comando %run. Basta, como pasar como argumento la ruta del archivo a ejecutar. Ya sea una ruta relativa o absoluta.  

>>In [1]: %run main.py
>>0
>>1
>>2
>>3
>>4
>>5
>>6
>>7
>>8
>>9 

Y en caso el archivo .py a su vez necesite argumentos para su ejecución,  colocamos dichos argumentos sobre el comando %run.

>>%run example.py argumento1 argumento2 argumento3

Si queramos echarle un vistazo al código fuente y ejecutarlo, hacemos uso del comando %load.

>>In [2]: # %load main.py ...: for x in range(0, 10): ...: print(x) ...:

Ojos es importante mencionar que este comando no permite editar el código fuente. El comando %load simplemente carga todo el contenido del archivo en el namespace de IPython. Con lo cual podremos ejecutar el código fuente y hacer uso de sus variables, funciones, clases etc...

Si queremos editar un archivo .py lo ideal sería hacer uso del comando mágico %edit.

>>In [1]: %edit main.py

El comando %edit abrirá un editor de texto donde podremos modificar el archivo.

Y, si solo queremos visualizar el contenido de un archivo, sin ejecutarlo o editarlo, hacemos uso del comando %pycat.

>>In [1]: %pycat main.py for x in range(0, 10): print(x)

Y, ya que mencionamos el namespace ¿Qué pasa si queremos eliminar todas las variables, funciones y clases creadas hasta este momento? Bueno, para ello haremos uso del comando mágico _%reset, eliminando todo el cache de memoria.

>>In [3]: %reset Once deleted, variables cannot be recovered. Proceed (y/[n])? y

Te aconsejo tengas cuidado con este comando, ya que una vez limpio el namespace no hay forma de recuperar los valores para las variables creadas anteriormente. Todo se perderá.

Así que, una muy buena, idea antes de ejecutar este comando, es inspeccionar que variables tenemos en memoria.

>>In [7]: nombre = 'Eduardo' In [8]: titulo = 'Artículo iPython' In [9]: %who nombre titulo

Para este ejemplo cree 2 nuevas variables, las cuales listo mediante el comando mágico %who.


Crear archivos 📃

Algo que simplemente me encanta de IPython es la posibilidad de guardar todas las líneas código ejecutas en el Shell, sí, así como lo escuchas. Esos días donde testeabas tu código en terminal, y si funciona copiabas y pegabas en tu editor de texto, ya podemos dejarlos en el pasado. (Bueno, por lo menos eso hacia yo).

Para crear un nuevo archivo hacemos uso del comando %save, pasando como argumentos de que línea a que línea queremos guardar.

Veamos un ejemplo.

s In [1]: username = 'EduardoGPG' In [2]: name = 'Eduardo Ismael' In [3]: %who name username In [4]: print(f'Hola {username}') Hola EduardoGPG In [5]: print(name) Eduardo Ismael In [6]: print('Nos encontramoen una nueva entrega') Nos encontramos en una nueva entrega

Procedemos a guardar.

In [7]: %save example.py 1-2 4-6 File `example.py` exists. Overwrite (y/[N])? y The following commands were written to file `example.py`: username = 'EduardoGPG' name = 'Eduardo Ismael' print(f'Hola {username}') print(name) print('Nos encontramos en una nueva entrega')

Para este ejemplo le indico a IPython que quiero crear el archivo example.py,con las líneas de la 1 a la 2 y de la 4 a la 6, excluyendo la línea 3.

El comando nos da un preview de todo lo almacenado en dicho archivo.

Y por supuesto, si queremos conocer en más detalle, podemos utilizar los comandos previamente mencionados: %edit o %pycat.


Introspección 🔎

Algo que sin duda me bolo la cabeza cuando lo supe, es lo fácil que podemos conocer el código fuente de funciones, clases y métodos con IPython. 🤯

Para ello utilizamos la introspección.

Vemos un par de ejemplos.

In [11]: def suma(a, b): ...: """" Retorna la suma de a + b """ ...: return a + b ...: In [12]: suma? Signature: suma(a, b) Docstring: " Retorna la suma de a + b File: ~/projects/blue/<ipython-input-11-d3e295ae5f56> Type: function

En este caso he definido la función suma, si quiero conocer su tipo, docstring y a que archivo pertenece, basta con colocar el objeto seguido del subfijo signo de interrogación (?).

Esto no solo funciona para funciones, también podemos hacerlo para variables.

In [13]: nombre = 'Eduardo' In [14]: nombre? Type: str String form: Eduardo Length: 7 Docstring:

Aun que lo común es conocer información sobre bloques de códigos. 😜

y, en caso queramos conocer el código de una función, clase o método recurriremos al doble signo de interrogación (??).

Ejemplo.

In [16]: def palindromo(sentence): ...: """Retornar V/F si la sentencia es un palindromo""" ...: return sentence.lower() == sentence.lower()[::-1] In [19]: palindromo?? Signature: palindromo(sentence) Source: def palindromo(sentence): """Retornar V/F si la sentencia es un palindromo""" return sentence.lower() == sentence.lower()[::-1] File: ~/projects/blue/<ipython-input-16-93fa369798f4> Type: function
Listado de comandos

Ya para finalizar, me gustaría recalcar que, como mencione anteriormente, estos no son todos los comandos mágicos que podemos utilizar con IPython. Así que si te interesa conocer cada uno de ellos, te recomiendo ejecutes el comando %lsmagic..

In [9]: %lsmagic Out[9]: Available line magics: %alias %alias_magic %autoawait %autocall %autoindent %automagic %bookmark %cat %cd %clear %colors %conda %config %cp %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %paste %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %pip %popd %pprint %precision %prun %psearch %psource %pushd %pwd %pycat %pylab %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode Available cell magics: %%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile Automagic is ON, % prefix IS NOT needed for line magics.

Un comando que nos listará todos los comandos mágicos disponibles, y para que puedas conocer exactamente como funciona cada uno de ellos puedes recurrir a la introspección. Recuerda, basta con utilizar doble signo de interrogación (??).

Ejemplo.

In [10]: %alias??
 

 

 

 

 

 


 

 

 

 

Que es Pycharm y para que se utiliza

 

¿Qué es y por qué usar PyCharm?

Primero debes tener en claro el concepto de IDE (Entorno de Desarrollo Integrado). Un IDE es un software que combina todas las herramientas que necesita una desarrolladora para hacer su trabajo, sin tener que salir del mismo. Básicamente te permite enfocarte 100% en tu código, mientras que el IDE se encarga de todo lo demás.

No es necesario un IDE para desarrollar software, pero tenerlo facilita mucho el trabajo al tener varios procesos automatizados, permitiendo que te puedas ahorrar varias horas de trabajo mecánico y te puedas centrar en desarrollar la lógica de tu código.

PyCharm es un IDE enfocado enPython que trae varias funcionalidades específicamente para este lenguaje. Según la encuesta de desarrolladores de Python, el 33% de desarrolladores usan PyCharm para desarrollar en Python.

Características más importantes de PyCharm

Ahora que ya conoces qué es PyCharm, es hora de ser más específicos en qué características trae para que sea llamativo usarlo. Cabe recalcar que las que voy a mencionar aplican para la versión Community, la versión Profesional trae incluso más, pero hablaré de ello más adelante.

  • En PyCharm siempre se trabaja por proyectos, por lo que por defecto siempre se crea un entorno virtual para empezar a desarrollar. Te invito a ver una clase para entender por qué siempre deberías trabajar con entornos virtuales.
  • Trae un editor inteligente con varias ventajas: identificar todo tipo de errores (incluyendo ortografía en inglés), verificación de sintaxis sobre la marcha, formateo de código, completar código, detectar el código duplicado y documentación automática.
  • Permite navegar a través de nuestro código, saltando entre las clases y métodos creados, haciendo el flujo de trabajo mucho más dinámico.
  • Puedes realizar todas las acciones de un sistema de control de versiones como Git, desde una interfaz gráfica o usar shortcuts de teclado para hacer tus commits, push y pull.
  • Ayuda a hacer refactorizaciones de manera segura con cambios locales y globales.
  • Trae un depurador gráfico, un ejecutor de pruebas y un inspector de código.
  • Tiene una terminal incorporada para que no tengas que salir del IDE.

Además, constantemente se está actualizando para adaptarse a las tendencias del desarrollo, en esta página siempre podrás visualizar las últimas novedades de PyCharm.

Si ya usabas PyCharm, ¿cuál de estas características es la que más usas?

¿Cómo instalar PyCharm?

Como requisitos previos, tienes que tener instalado Python.

PyCharm trae 2 versiones. En la versión profesional (de pago), sus principales características están orientadas al uso de Python enfocado al desarrollo web (a través de frameworks como Django y Flask) y el desarrollo científico. Mientras tanto, la versión Community es una versión gratuita, de código abierto, y enfocada en desarrollo de Python en general. Acá te dejo un cuadro comparando las funcionalidades de cada versión.

 

 


 

A menos que estés trabajando en un gran proyecto, la versión Community será más que suficiente. Para instalar esta versión hay que ir a la página de JetBrains, acá te dejo los enlaces para Windows, macOS y Linux. Luego solo ejecútalo y sigue los pasos normales de instalación.

Cuando llegues a la parte de “Opciones de instalación”, podrías personalizar un poco cómo usarás PyCharm. Podrás añadir un acceso directo, abrir carpetas como proyecto, añadirlo a la ruta, o asociar todos los archivos .py a PyCharm (este último márcalo solo si usarás PyCharm como tu editor por defecto).

Opciones de instalación de PyCharm 

Con eso ya lo tendrás listo, quizá requieras reiniciar tu PC y ya podrás empezar a trabajar.

Si te interesa la versión profesional, estos son sus precios. Si eres estudiante o profesora universitaria y tienes un correo @universidad.edu.com, puedes adquirirlo gratis. También hay más ofertas especiales para tener PyCharm profesional gratuito.

¡Ya tienes instalado tu IDE! Ahora vamos a ver cómo utilizarlo 👇

Crea un nuevo proyecto y archivo

Ejecuta PyCharm y crea un nuevo proyecto. Te aparecerá una ventana con varias opciones, vamos a repasarlas:

  • Location: podrás elegir en dónde guardarás la carpeta principal de tu proyecto.
  • Nuevo ambiente (New environmet): se instalará un ambiente virtual único para este proyecto, podrás crearlo con Virtualenv o Conda (en caso de que uses Anaconda).
  • Base interpreter: podrás escoger un intérprete base en caso de que tengas varias versiones de Python.
  • También podrás heredar paquetes globales que tengas instalados y hacer que quede disponible para todos tus proyectos (en lo personal, no marcaría ninguna de esas 2 opciones para poder trabajar con versiones específicas de los módulos).
  • Intérprete existente (Previously configured interpreter): si ya tenías un intérprete configurado, lo podrás utilizar.
  • Podrás crear en tu proyecto un archivo main.py por defecto.

Crear un nuevo proyecto en PyCharm 

Ahora se creará tu entorno virtual y luego estará todo listo para empezar a trabajar.

Para crear un nuevo archivo da clic derecho en el nombre del proyecto (en la parte de izquierda en general) y dale a New > Python File. Aparecerá una ventana en la que podrás poner el nombre de tu archivo. No es necesario agregar el .py al final.

Ya tienes creado tu primer archivo. Para finalizar, vamos a escribir algo de código y ejecutarlo. Imprime un “Hello, world!”. Luego da clic derecho sobre el código y “Run {nombre de tu archivo}”.

 Interfaz de PyCharm 

Consola de PyCharm 

Fíjate en esas 3 opciones de abajo. Tu archivo se ejecutó en (1)“Run”, pero también podrías ejecutarlo manualmente desde la (2)“Terminal” tal como lo harías en la terminal que tienes instalada en tu PC. Por último, también puedes abrir la (3)“Python Console” para pruebas rápidas.


 


 

Anaconda vs Python

 

Anaconda contra Python: Explorando sus diferencias

Conoce las principales diferencias entre Python y Anaconda en esta completa guía.
Actualizado 11 dic 2024  · 9 min de lectura
 

Si te estás iniciando en la programación con Python, te habrás encontrado con dos términos: Anaconda y Python. Aunque puedan parecer sinónimos, son bastante diferentes en su funcionalidad y finalidad.

En este artículo, exploraremos las principales diferencias entre Anaconda y Python y cuándo se utiliza cada uno de ellos.

 

TL;DR: Anaconda vs Python

  • Pitón: Un lenguaje de programación ligero utilizado para la programación de propósito general, con gestión de paquetes mediante pip y herramientas básicas de entorno como venv.
  • Anaconda: Una distribución de Python para la ciencia de datos y el aprendizaje automático, que incluye Python, bibliotecas populares, Jupyter Notebook y el gestor conda para facilitar la gestión de paquetes y entornos.

Utiliza Python para la programación general y Anaconda para los flujos de trabajo centrados en los datos.

Sigue leyendo para ver una comparación más detallada.

¿Qué es Python?

Si tienes curiosidad por saber más sobre Python, consulta nuestra guía completa - ¿Qué es Python? A continuación, hemos resumido los puntos clave.

Lenguaje de programación Python 

 

Python es un lenguaje de programación versátil, de alto nivel e interpretado que se utiliza ampliamente para diversas aplicaciones, como el desarrollo web, el análisis de datos, la inteligencia artificial, el aprendizaje automático y la informática científica.

Para ayudarte a entender mejor Python, aquí tienes nuestra hoja de trucos sobre Python:

 hoja de trucos python 

Características y ventajas de Python

Fácil de aprender y utilizar

Una de las principales ventajas de Python es su sencilla sintaxis.

Esto hace que sea más fácil para los principiantes aprender Python que otros lenguajes de programación. También tiene una gran biblioteca estándar que proporciona funciones listas para usar en diversas tareas, ahorrando tiempo y esfuerzo a los desarrolladores.

Plataforma independiente

Python es un lenguaje interpretado, lo que significa que puede funcionar en distintos sistemas operativos sin necesidad de modificar el código. Esto hace que sea muy versátil y portátil.

Lenguaje orientado a objetos

Python es compatible con la programación orientada a objetos (POO), que permite a los desarrolladores crear código reutilizable y construir aplicaciones complejas dividiéndolas en objetos más pequeños y manejables. Nuestro curso de Programación Orientada a Objetos en Python te proporcionará una buena base.

Gran apoyo comunitario

Python cuenta con una amplia y activa comunidad de desarrolladores que contribuyen a su crecimiento y desarrollo. Esta comunidad proporciona apoyo, recursos y herramientas tanto para principiantes como para desarrolladores experimentados.

¿Estás pensando en encontrar una buena comunidad de principiantes en Python? ¡Únete a nuestra Comunidad DataCamp Slack!

Amplias bibliotecas

Python tiene una amplia colección de bibliotecas y marcos de trabajo que proporcionan soluciones para diversas tareas.

Tales tareas incluyen:

Estas bibliotecas hacen que la programación en Python sea eficaz y cómoda.

¿Tienes curiosidad por saber más sobre algunas tareas comunes que son posibles con Python? Aquí tienes una hoja de trucos sobre cómo utilizar pandas en Python para manipular datos:

 Hoja de trucos sobre pandas


¿Qué es Anaconda?

Anaconda es una distribución de código abierto de los lenguajes de programación Python y R, que se utilizan para aplicaciones de ciencia de datos, aprendizaje automático e inteligencia artificial.

Incluye más de 250 paquetes populares de ciencia de datos y herramientas de gestión para simplificar la instalación y despliegue de paquetes.

Características y ventajas de Anaconda

Gestión de paquetes

Anaconda viene con su propio sistema de gestión de paquetes, entornos y dependencias llamado "conda".

Aquí tienes una útil hoja de trucos que te ayudará a iniciarte en el uso de conda:

Hoja de trucos Conda 

 

Soporte multiplataforma

Al igual que Python, Anaconda también es compatible con varias plataformas, lo que permite a los usuarios desarrollar y desplegar aplicaciones en distintos sistemas operativos sin cambiar el código.

Herramientas centradas en la ciencia de datos

Anaconda incluye populares herramientas de ciencia de datos e IDEs como Jupyter Notebook, Spyder y RStudio. Estas herramientas proporcionan un entorno interactivo de análisis y visualización de datos, lo que las convierte en la opción preferida entre los científicos de datos.

Colaboración sencilla

Anaconda permite a los usuarios compartir su código fácilmente y colaborar con otros a través de su plataforma basada en la nube Anaconda Cloud.

Anaconda Cloud 

Esto resulta cómodo para equipos o personas que trabajan en el mismo proyecto.

Diferencias entre Anaconda y Python

Aunque Anaconda y Python son lenguajes de programación utilizados con fines similares, existen algunas diferencias clave entre ellos.

1. Gestión de paquetes

Una gran diferencia entre Anaconda y Python son sus sistemas de gestión de paquetes. Mientras que Python utiliza pip para gestionar paquetes, Anaconda utiliza su propio sistema llamado "conda".

Conda ofrece funciones más avanzadas, como la creación de entornos aislados para distintos proyectos, lo que facilita la gestión de dependencias.

2. Configuración del entorno

Anaconda viene con un conjunto de paquetes y herramientas de ciencia de datos preinstalados, lo que facilita a los principiantes la rápida configuración de su entorno. Python, en cambio, requiere que los usuarios instalen manualmente las bibliotecas y herramientas necesarias.

3. Casos de uso e idoneidad

Mientras que Python es un lenguaje de uso general, Anaconda está más centrado en aplicaciones de ciencia de datos y aprendizaje automático. Por lo tanto, puede que no sea la mejor opción para los desarrolladores que trabajen en proyectos que no impliquen análisis de datos o computación científica.

Anaconda contra Python: Un resumen

Función Python Anaconda
Gestión de paquetes Utiliza pip para la gestión de paquetes Utiliza conda para la gestión de paquetes, entornos y dependencias
Soporte multiplataforma Disponible en varios sistemas operativos Disponible en varios sistemas operativos
Paquetes preinstalados Requiere la instalación manual de paquetes Viene con más de 250 paquetes de ciencia de datos preinstalados
Casos de uso adecuados Programación general Ciencia de datos, aprendizaje automático y computación científica
Herramientas de desarrollo Soporta varios IDEs como PyCharm, VSCode Incluye herramientas como Jupyter Notebook, Spyder, RStudio
Apoyo comunitario Comunidad grande y activa Sólida comunidad centrada en las aplicaciones de la ciencia de datos

 




Que es Spyder y para que sirve

 

Spyder-Anaconda

 
Descripción
 
Spyder es un Entorno de Desarrollo Integrado (IDE) para la programación en Python, diseñado específicamente para científicos, ingenieros y analistas de datos. Se integra de manera óptima con el paquete Anaconda, que es una distribución de Python enfocada en la ciencia de datos y el aprendizaje automático.
  • Aplicación en la educación
  • Programación en Python
  • Análisis de datos
  • Ciencia de datos
  • Machine Learning
  • Visualización de datos
Funcionalidades
  • Entorno de Desarrollo Integrado (IDE): Ofrece un IDE completo para programar en Python.
  • Entorno de Desarrollo Integrado (IDE): Ofrece un IDE completo para programar en Python.
  • Visualización de datos: Soporte para bibliotecas de visualización como Matplotlib y Seaborn.
  • Depuración y testing: Herramientas avanzadas para depuración y testing de código.
  • Interactividad: Consola interactiva de Python (IPython) y soporte para notebooks de Jupyter.

 Ventajas

  • Integración completa: Incluye múltiples herramientas y bibliotecas en una sola instalación.
  • Entorno amigable: Interfaz intuitiva y fácil de usar, adecuada tanto para principiantes como para usuarios avanzados.
  • Bibliotecas extensas: Compatible con una amplia variedad de bibliotecas para análisis y visualización de datos, machine learning, y más.
  • Comunidad activa: Gran cantidad de recursos y una comunidad activa que facilita el aprendizaje y resolución de problemas.
  • Open-source: Software de código abierto, lo que permite personalización y contribuciones de la comunidad.

 

Entradas recientes

¿Existen herramientas para RCA (Root Cause Analysis) en Python?

Fuente: Gemini IA.  Sí, existen librerías especializadas en Python para realizar análisis de causa raíz (Root Cause Analysis o RCA), especi...

Entradas Populares