Usar módulos o porqué no reinventar la rueda
Un módulo son un programa que viene «empaquetado» para poder usado por otros programas de manera sencilla. Muchos programadores elaboran estos módulos, y luego los comparten gratuitamente a través de páginas como Github. Si alguien ya ha hecho el trabajo, ¿por qué no aprovecharlo?.
Python dispone de módulos para realizar multitud de operaciones, tales como realizar matemáticas avanzadas, descargar vídeos de Youtube, dibujar gráficos, programas juegos, etc. Algunos de estos módulos vienen incluidos de «serie» y otros es necesario descargarlos.
Gracias a estos módulos, escribiendo muy pocas líneas de código, pueden hacerse cosas complejas. En ocasiones parece mágico.
¿Cómo instalar un módulo?
Para instalar un módulo simplemente hay que copiar el archivo con la extensión .py y copiarlo en la carpeta en la que tengamos nuestro código fuente. No obstante, en ocasiones hay maneras más cómodas de realizar la instalación.
Queremos instalar el módulo html5lib. Dado que tenemos instalado Anaconda, lo primero que hay que hacer es cerrar Anaconda (incluida la ventana tipo msdos con fondo negro que puede que tengamos abierta), y basta con abrir una línea de comandos ejecutando «Anaconda Prompt»:
En la ventana que se abra escribiremos:
conda install html5lib
Cuando nos pregunte si queremos instalarlo, basta con decirle sí (Y).
Modulos Python de «serie» más usados
- os
- datetime
- time
- sys
- locale
- MySQLdb
Módulos Python adicionales más usados
- BeautifulSoup
- html5lib
- request
- Scrapy
- Pandas
- Youtube-dl
Cada uno de estos tipos, tiene operaciones (funciones) asociadas ya incluidas con lo que en caso de que necesitemos hacer algo, sólo tenemos que pedir que se realice esa operación, y no tenemos que realizarla nosotros paso a paso. No hay que reinventar la rueda.
Si el módulo está instalado, para cargarlo tenemos que usar el comando import. Para usar alguna de las funciones que están en el módulo, basta con poner el nombre_del_modulo.nombre_funcion():
# Cargamos el módulo import modulo # Para usar alguna de las funciones que están en el módulo. modulo.funcion()
Xavier dice
Favor puedes ayudarme como instalo librerias externas para spyder- python…
Tengo instalado anaconda pero necesito instalar librerias externas ( no las que vienen por default)
jaime dice
Hola Xavier,
¿qué librerías quieres instalar?
Si tienes instalado anaconda, lo más sencillo suele ser utilizar «conda install nombrelibreria».
También puedes instalar Pypi y usar el comando «pip install nombrelibreria».
eduardprime dice
hola que tal muchas gracias por el curso esta excelente, don puedo ver como usar la libreria tkinter o como la instalo y sus funciones muchas gracias por todo
jaime dice
Hola Eduardo,
Normalmente viene instalada por defecto, por lo que si escribes import Tkinter (en python2) o import tkinter (en python3), deberías poder empezar a programar.
En cuanto a aprender a usarlo, acabo de buscar y la verdad es que no he encontrado ningún tutorial que me haya parecido especialmente bueno. Puedes probar con este: http://zetcode.com/gui/tkinter/
También podrías consultar la documentación oficial en https://docs.python.org/3/library/tk.html
Si hay interés, puede que me anime a preparar uno.
Juanzito dice
Solo comentarles que el curso está muy mal estructurado desde el punto de vista didáctico (al igual que el 99% de cursos y tutoriales existentes sobre Python). No es posible que, luego de haberme paseado por unos 5 tutoriales y manuales, no pueda aún realizar un programa tan simple y sencillo como el siguiente:
«Hacer un programa que pida al usuario dos números y que devuelva la suma de los mismos.»
Si se toman el trabajo de escribir 6 capítulos sobre este lenguaje, explicando conceptos complejos como el de Listas y Módulos, no pueden saltearse algo tan crucial como un «Input» o un «cin» (o su equivalente en Python de esta instrucción, que aún no he podido encontrar por ningún lado). 🙁
jaime dice
Hola Juanzito,
en el curso básico se explican los conceptos básicos de programación en Python. Recuerda que la idea de estos tutoriales es aplicar el principio de Pareto y centrarnos inicialmente en el 20% de cosas que se usan en más del 80% de los programas de Python.
Estamos trabajando en un listado de ejemplos de consulta en los que se muestre cómo hacer distintos ejemplos prácticos con Python, y que quizá se asemeja más a lo que estás buscando.
Julio dice
Gracias.
Ojalá hubieran más tutoriales, así de simples, para no tener que «quebrarse la cabeza»
Juan Manuel Damas dice
print(«Ingrese un numero: «)
numero1 = input()
print(«Ingrese otro numero: «)
numero2 = input()
resultado = int(numero1) + int(numero2)
print(«Resultado Suma: » + str(resultado))
Marcos dice
Buenas:
Es cierto que es un curso muy básico y que no puede tenerlo todo, pero estoy de acuerdo en que si por ejemplo se explica como imprimir algo en pantalla, también debería indicarse, como hace otro usuario, como pedir datos por el teclado en el mismo tema (que es algo muy básico que se enseña a todo el mundo que aprende a programar), o por ejemplo como coger parámetros de la línea de comando, que es otra cosa también se hace habitualmente incluso en programas pequeños.
Por lo demás lo veo correcto para que alguien sin conocimientos previos (como es mi caso) del lenguaje pueda empezar a entenderlo. Pero veo un fallo y es que se explican muy poco las cosas. No digo que se tengan que poner parrafadas en plan ladrillo, pero hay que tener en cuenta que muchas personas que se acercan a la programación no tienen ni idea de lo que es una variable, una lista o un bucle. Lo sé porque enseño otros lenguajes como Java y a mucha gente le cuesta un mundo comprender esos conceptos que para la gente que llevamos años programando son triviales.
Por lo demás a mi me ha venido bien, aparte de ese asunto de la entrada de datos, pero porque yo ya sabía lo que estaba leyendo, ya que tengo la cabeza muy amueblada en estos asuntos. Simplemente mi recomendación es ajustar los textos para explicar un poco más esos conceptos básicos, sobre todo el de variable, que suele dar quebraderos de cabeza a algunas personas, y la conversión de datos, que también es un punto difícil para algunos. Explicar las condiciones un poco más tampoco estaría de más, de la misma manera que se ha dedicado tiempo a los bloques indentados (que sinceramente es una de las cosas que más me flipa de este lenguaje, aunque no en sentido demasiado positivo…).
Animo a realizar más trabajos de este tipo, aunque como digo, no asumiendo que el que se acerca es ingeniero informático. Saludos y gracias por el trabajo.
Alejandra Medina dice
Hola!!! Muchas gracias por el tutorial. Excelentísimo en un rato podés tener todo la nomenclatura de todo lo básico y está super bien ejemplificado. Resulta muy entretenido y podés ir ya probando todo. Me encantó!!
Se valora y agradece si pueden continuar aportando este tipo de trabajos.
Un saludo!!!!!!
Alejandra (Uruguay)
jaime dice
Muchas gracias Alejandra,
mensajes como el tuyo son los que nos animan a seguir enseñando como programar en este fantástico lenguaje.
Un saludo
Camila Cabrera dice
Hola! cómo puedo instalar alguna libreria de googlemaps, para si calcular distancias y direcciones?
jaime dice
Hola Camila,
puedes usar la librería google-maps-services-python que usa la API de Google Maps.
También puedes usar geopy
Ninguna de las dos está disponible en Conda, por lo que tendrás que instalarlas usando pip.
isabel dice
Muchas gracias,
no he trabajado nunca con python y ahora estoy empezando, esto me sirve para los primeros pasos.
jaime dice
Muchas gracias Isabel, me alegro de que te sirva.
Ya sabes donde estamos si tienes cualquier duda.
Juan Carlos Nieto dice
Me parece excelente esta introducción…de mi parte…gracias y sigan adelante….buena onda total..
Raúl Villegas N. dice
Muchas gracias por el curso que he hecho muy bien hasta acá
De varios tutoriales que he iniciado, éste es el mejor. He avanzado bastante, pues todos los ejercicios funcionan. Para empezar a trabajar con Bases de Datos relacionales, tema que conozco bien en otros sistemas, ¿qué me recomiendas?
jaime dice
Hola Raúl,
me alegro de que te haya gustado.
En cuanto a bases de datos, python dispone de bibliotecas específicas para comunicarse con la mayoría de las bases de datos (MySQL, SQLite, PostgreSQL, etc).
No obstante, mi recomendación es que pruebes SQLAlchemy. Esta librería intenta abstraerse de las diferentes base de datos de modo que puedas cambiar de un tipo a a otro (por ejemplo de SQLite a MySQL) sin tener que modificar casi nada de código. Tiene dos partes:
– «core»: Te permite comunicarte con cualquier base de datos usando la biblioteca específica de esa base de datos y comandos SQL.
– ORM: Traduce la base de datos a objetos, y te permite trabajar con esos objetos sin tener que usar comando SQL.
Para empezar, sobre todo si tienes ya experiencia con bases de datos, empieza con la parte «Core», y luego puedes pasar al ORM más adelante.
ivan dice
hola tengo un problema con:
import pandas_datareader.data as web
me manda el sig, error:
ModuleNotFoundError Traceback (most recent call last)
in ()
2 import numpy as np
3 import pandas as pd
—-> 4 import pandas_DataReader.data as web
ModuleNotFoundError: No module named ‘pandas_DataReader’
jaime dice
Hola Iván,
te da el error porque la D de Datareader tiene que ser minúscula:
import pandas_datareader.data as web
Todo esto suponiendo que tienes instalado el modulo datareader, que es un modulo separado de pandas. Si no está instalado, puedes hacerlo con:
pip install pandas-datareader
Tecprog World dice
hola gracias por la presente entrada, te quería algunas cosas:
1. ¿Cómo puedo dentro de un entorno virtual creado con conda installar el empaquetador pyinstaller?, lo instalé aunque creo que no se encuentra disponible para el interprete de Python3.5
2. ¿Cómo puedo usar Spyder para cada entorno virtual que tengo creado ya que utilizo diferentes interpretes para cada entornos?
jaime dice
Hola,
paso a responder tus dudas:
1. los entornos virtuales de conda permiten instalar bibliotecas usando conda o usando pip. Entrando en el entorno virtual y ejecutando pip debería funcionarte: pip install pyinstaller
2. Hay que instalar spyder en cada entorno virtual, lo cual es bastante rollo. Si vas a hacer un uso de python más intensivo, te recomendaría que echaras un vistazo a otros IDEs, como SublimeText, Visual Studio Code o pyCharm.
Alberto dice
Como puedo instalar un modulo desde Pycharm en Ubuntu? sería desde la terminal del mismo PyCharm con comandos de linux? apt-get install MODULO?
Saludos
jaime dice
Hola Alberto,
lo más habitual es usar el comando pip (aunque en algunos casos también puedes usar apt-get), pero no tienes porqué hacerlo desde pycharm, podrías hacerlo desde el propio terminal.
Si usas apt, lo normal es que los modulos tengan un nombre similar a python3-MODULO (ej. sudo apt-get install python3-pymysql). Como sabes, pulsando el tabulador te muestra las diferentes posibilidades existentes.
Jorge Mieses dice
Al igual que muchos que comentan, me parece genial la forma en que introducen a Python, cuando uno es programador de otros lenguajes estas simples sentencias ayudan a entender la filosofía de trabajo.
Gracias por su trabajo.
jaime dice
Muchas gracias Jorge. Este tipo de comentarios son los que nos animan a seguir ampliando el tutorial.
Johann dice
Excelente tutorial introductorio y muy práctico utilizar el principio de Pareto para un Tutorial. Vengo de otros lenguajes y con tu tutorial pude muy velozmente sentir confianza para hacer un programa rápido en Python y buscar el resto de detalles puntuales que necesité en internet.
Además me diste una idea buena de cómo estudiar y enseñar ciertos temas de forma más efectiva.
Muchas gracias amigo Jaime.
jaime dice
¡¡Muchas gracias Johann!!
William dice
Pues a mí sí me gustó este tutorial, realmente es básico y explicas muy bien como funcionan los comandos que expones, como primer contacto con el lenguaje está muy bien.
Alguien ya lo había dicho, y es cierto, para quienes ya programamos en algún otro lenguaje, este tipo de tutorial es de bastante ayuda, así de rápido y sencillo.
Te felicito por tu trabajo y espero que te animes a ir agregando más temas y pulir los que ya hiciste.
¡Saludos!
jaime dice
Hola William,
muchas gracias. Tengo preparados unos cuantos temas, a ver si los termino y los publico.
Luis Medrano dice
Muchas gracias por el curso de introducción. Me gustaría que me recomedaras bibliografía para ir viendo temas más conceptuales como los diagramas de flujo que están por detrás de todas las operaciones que se realizan. Muchas gracias y saludos.
jaime dice
Hola Luis,
la verdad es que no conozco ningún libro que te pueda recomendar. Supongo que ya lo habrás hecho, pero puedes empezar por el enlace de la wikipedia.
Paula dice
Hola
Tengo una duda y es que no he podido instalar pandas-datareader, tengo python 3.7, como la podria instalar ya que no me sirve <<conda install nombrelibreria». ni con «conda install nombrelibreria».
Gracias
jaime dice
Hola Paula,
tienes que ponerlo sin ningún tipo de comillas. Si no te funciona con conda, siempre puedes usar pip:
pip install pandas-datareader
Edgar dice
GRACIAS!!! Me has ayudado a incorporarme al mundo Python. Jugaré con los comandos.
Omar Santamaria dice
Excelente tutorial. Como dice usted, el 20/80 está muy bien enfocado. Al resto de la audiencia que busca aqui temas mas elevados al parecer no captaron el concepto. No es problema de usted, es problema de entendimiento.
Además es un tutorial gratuito, si se necesita algo mas elaborado, pues el internet es el límite.
Lo felicito por todo el esfuerzo y dedicación que ha aplicado en su tutorial. Siga así y espero los siguientes temas.
Saludos desde Panamá.
jaime dice
Hola Omar,
muchas gracias.
Flavio dice
Muy buen tutorial
Una consulta sobre el uso de librerías.
Estoy trabajando en Spyder, intento trabajar con la librería Qgis, la he instalado desde el pronto de Anaconda y se instalo ok, al menos figura en el listado de librerías. El problema es que al importar la dentro del código, Spyder no la reconoce.
He colocado la dirección dentro de ‘Administrador PYTHONPATH’ y nada
¿Que puede estar ocurriendo?
Gracias por la ayuda
jaime dice
Hola Flavio,
en python es habitual el uso de «entornos virtuales» (virtual environments). Cada entorno virtual puede tener sus propias librerías instaladas.
Verifica que no estés usando spyder desde un entorno virtual que tenga instalado Qgis.
Si tienes instalado Anaconda Navigator, puedes gestionar de forma gráfica estos entornos.
Zahira dice
Gracias por el curso, me sirvio mucho.