Actualizado el 24/04/2022.
Un código QR es un método para almacenar información en una imagen contenedora de una matriz de puntos. Las siglas QR derivan de Quick Response, respuesta rápida. En la actualidad se ha dado a conocer a nivel mundial, principalmente, durante el auge de los teléfonos inteligentes. Por lo tanto, si cuentas con uno, de seguro que incorpora un lector de código QR.
El módulo qrcode
permite generar imágenes de código QR desde Python a partir de una cadena de texto. Para esto, lo único que requiere es una previa instalación de PIL, un paquete para el manejo de imágenes, o preferiblemente Pillow, un fork (bifuración) más moderno de éste.
Para Python 3, existe un fork llamado python3-qrcode
que puedes encontrar en este enlace.
Instalación
Para la instalación de ambos puedes utilizar pip
, ejecutando el siguiente comando.
pip install qrcode
Si Pillow no es instalado automáticamente, también:
pip install pillow
De otro modo, puedes descargar el código de fuente de qrcode desde GitHub y el de Pillow desde PyPI, extraerlos e instalar ambos módulos ejecutando:
python setup.py install
Además, en la misma página, Pillow provee instaladores automáticos para usuarios de Microsoft Windows.
Ejemplos
La imágen al comienzo del artículo ha sido generada a partir del código a continuación. Si utilizas un lector de código QR, obtendrás como resultado el mensaje «Hola desde Recursos Python!».
import qrcode img = qrcode.make("Hola desde Recursos Python!") f = open("output.png", "wb") img.save(f) f.close()
Éste es el tipo de utilización más básico del módulo. Puedes ampliar la información en la página de PyPI o bien en los ejemplos de GitHub.
Además, puede ejecutarse desde la terminal o línea de comandos a través del script qr
:
qr "Hola desde Recursos Python!" > output.png
Es probable que en Windows el comando qr
no sea reconocido, aunque podrás encontrar el script en la carpeta Scripts/
dentro del directorio de instalación de Python.
Curso online 👨💻
¡Ya lanzamos el curso oficial de Recursos Python en Udemy!
Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter
en 2024.
Consultoría 💡
Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.
Joaquín says:
Buenas, como podria incorporar estas herramientas en mi website? tengo una funcion para convertir el html en un pdf y el cliente quiere/gustaria que tambien pueda generar un qr con la informacion del html, pero no encuentro manera de generar el qr dentro del website
Recursos Python says:
Hola. Depende el lenguaje en el que esté programado el sitio. Si está desarrollado con Python, no habría ningún problema en incluir este código.
Saludos
Osvaldo Cano says:
hola amigo, como te encuentras?
la generación de este código podría servir para direccionar un objeto, es decir, un carro no tripulado debe dar una curva hacia la derecha, se podría direccionar por esté medio y tiene alguna idea de cómo funciona?
Recursos Python says:
Hola, Osvaldo. No, es para generar códigos QR, que es un método para almacenar texto en una imagen.
Saludos
Azu says:
Hola he revisado este codigo, como seria para utilizar el QR con acentos y ñ lo he intentado pero no me ha dado
Recursos Python says:
Hola, el procedimiento es el mismo, tal como se muestra en el ejemplo. ¿Qué error estás obteniendo?
killer says:
ey Hola al nombre que le doy a la imagen en la parte de:
f = open(«output.png», «wb»)
yo le pongo el mismo nombre y todo pero me sale el sgt error:
PermissionError: [Errno 13] Permission denied: ‘output.png’
AIUUUDA
Recursos Python says:
Hola. No tenés permisos suficientes para escribir en la ubicación de tu archivo de Python. Tenés dos soluciones: ejecutar Python como administrador o mover tu archivo a una ubicación que no requiera permisos de administrador.
Saludos
javier says:
Un favor nose xq me da error al instalar la herramienta qrcode es toy trabajando en Windows 8.0 ya instale pip = pill = pillow= pero para generar lcodigos qr no de funciona algun consejo amigo? gracias por el tutorial…
Recursos Python says:
Hola, ¿cuál es el error que estás obteniendo?
danycoro says:
Excelente amigo, gracias por compartir, solo una duda:
¿Cual seria el código para decodificar la imagen?
Recursos Python says:
Hola, me alegro que te haya servido. Al parecer esta herramienta no permite decodificar imagenes, pero puedes darle un vistazo a QR Tools que soporta ambas funciones (codificar y decodificar), seguramente se ajuste mejor a tus necesidades.
Un saludo.