<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Python_-_M%C3%B3dulos</id>
	<title>Python - Módulos - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Python_-_M%C3%B3dulos"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Python_-_M%C3%B3dulos&amp;action=history"/>
	<updated>2026-10-22T19:39:21Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Python_-_M%C3%B3dulos&amp;diff=68687&amp;oldid=prev</id>
		<title>Vieites: /* Ejemplo Librería matplotlib */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Python_-_M%C3%B3dulos&amp;diff=68687&amp;oldid=prev"/>
		<updated>2020-11-10T21:42:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Ejemplo Librería matplotlib&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039; Módulos &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Si un programa se vuelve muy largo, sería interesante separarlo en distintos archivos para un mantenimiento más sencillo. De ese modo, una función podría utilizarse en distintos programas sin copiar su definición en cada uno de ellos.&lt;br /&gt;
&lt;br /&gt;
: Para conseguir todo esto, Python tiene un modo de poder crear archivos con la definición de ciertas funciones y así poder utilizarlas en un cualquier programa Python sólo con importar dichos archivos. Estos archivos se denominan &amp;#039;&amp;#039;&amp;#039;módulos&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
: Enlace : [http://docs.python.org.ar/tutorial/3/modules.html Introducción interesante sobre módulos].&lt;br /&gt;
&lt;br /&gt;
== Tipos de módulos ==&lt;br /&gt;
Los módulos de Python pueden pertenecer a una de las siguientes categorías: módulos Python, módulos compilados, módulos integrados o extensiones C o C++ compiladas o vinculadas dinámicamente cuando se importan.&lt;br /&gt;
: Desde el punto de vista del usuario, no hay ninguna diferencia entre estos cuatro tipos de módulos, puesto que todos ellos son importados y utilizados del mismo modo.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Módulos Python - &amp;#039;&amp;#039;&amp;#039; Son imples archivos que contienen instrucciones Python. Al importarlos, serán compilados y, por lo tanto, su bytecode es producido y guardado.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Módulos compilados - &amp;#039;&amp;#039;&amp;#039; Son archivos que contienen las instrucciones codificada en bytecode.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Módulos integrados - &amp;#039;&amp;#039;&amp;#039; Se obtienen de fuentes C, compiladas y vinculadas estáticamente al intérprete. El módulo &amp;#039;&amp;#039;sys&amp;#039;&amp;#039; de la librería estándar, es un módulo integrado.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Las extensiones - &amp;#039;&amp;#039;&amp;#039; Las extensiones son módulos obtenidos de fuentes C o C++ que son compilados como librerías dinámicas. tienen un sufijo .so en Linux y .dll o .pyd en Windows. El módulo math es un ejemplo de este tipo de módulos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
: Para manejar los módulos de Python lo más cómodo es instalar &amp;#039;&amp;#039;&amp;#039;pip&amp;#039;&amp;#039;&amp;#039;. Se trata de un administrador de paquetes utilizado para instalar y configuarar paquetes de Python. &lt;br /&gt;
:: - Muchos de estos paquetes podemos encontrarlos en el [https://pypi.python.org/pypi Python Package Index (PyPI)].&lt;br /&gt;
:: - Python 2.7.9 y posterior incluye &amp;#039;&amp;#039;&amp;#039;pip&amp;#039;&amp;#039;&amp;#039; por defecto. &lt;br /&gt;
:: - Para instalar &amp;#039;&amp;#039;&amp;#039;pip&amp;#039;&amp;#039;&amp;#039; en el sistema:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Debian&lt;br /&gt;
$ apt-get install python-pip&lt;br /&gt;
# Debian y para python3&lt;br /&gt;
$ apt-get install python3-pip&lt;br /&gt;
# MAC OS X&lt;br /&gt;
$ sudo easy_install pip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:: - Para instalar o desinstalar un paquete cualquiera con &amp;#039;&amp;#039;&amp;#039;pip&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Instalar un paquete&lt;br /&gt;
$ pip install nombre_paquete&lt;br /&gt;
# Desinstalar un paquete&lt;br /&gt;
$ pip uninstall nombre_paquete&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: Las definiciones de un módulo pueden ser importadas a otros módulos o a uno principal. &lt;br /&gt;
&lt;br /&gt;
: Así, &amp;#039;&amp;#039;un módulo&amp;#039;&amp;#039; es un archivo que contiene definiciones y declaraciones de Python. El nombre del archivo es el nombre del módulo con el sufijo .py agregado. &lt;br /&gt;
:: - Dentro de un módulo, el nombre del mismo debe estar disponible en el valor de la variable global &amp;#039;&amp;#039;&amp;#039;__name__&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
:: &amp;#039;&amp;#039;&amp;#039;- Como ejemplo, vamos a crear un módulo con dos funciones:&amp;#039;&amp;#039;&amp;#039; una que escriba por pantalla los N primeros números de la serie Fibonacci y otra que devuelva una lista con los N primeros números de la serie Fibonacci.&lt;br /&gt;
::: Crea un archivo fibo.py con el siguiente contenido:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# módulo de números Fibonacci&lt;br /&gt;
&lt;br /&gt;
def fib1(n):    # Escribe los N primeros números de la serie Fibonacci&lt;br /&gt;
    x = 0&lt;br /&gt;
    a, b = 0, 1&lt;br /&gt;
    while x &amp;lt; n:&lt;br /&gt;
        print &amp;#039;- %s&amp;#039; % b&lt;br /&gt;
        a, b = b, a+b&lt;br /&gt;
        x = x + 1&lt;br /&gt;
    print &amp;#039; &amp;#039;&lt;br /&gt;
&lt;br /&gt;
def fib2(n): # Devuelve una lista con los N primeros números de la serie Fibonacci&lt;br /&gt;
    resultado = []&lt;br /&gt;
    x = 0&lt;br /&gt;
    a, b = 0, 1&lt;br /&gt;
    while x &amp;lt; n:&lt;br /&gt;
        resultado.append(b)&lt;br /&gt;
        a, b = b, a+b&lt;br /&gt;
        x = x + 1&lt;br /&gt;
    return resultado&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
::: Luego crea el siguiente archivo &amp;#039;&amp;#039;&amp;#039;prueba.py&amp;#039;&amp;#039;&amp;#039; que hará uso del módulo &amp;#039;&amp;#039;&amp;#039;fibo.py&amp;#039;&amp;#039;&amp;#039; creado:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Importamos el módulo fibo.py que está en el mismo directorio que este archivo&lt;br /&gt;
import fibo&lt;br /&gt;
# La variable __name__ contiene el nombre del módulo&lt;br /&gt;
name = fibo.__name__&lt;br /&gt;
print &amp;#039;Utilizando el módulo: %s&amp;#039; % name&lt;br /&gt;
&lt;br /&gt;
# Pedimos al usuario que introduzca un número&lt;br /&gt;
n = float(raw_input(&amp;#039;Número de elementos de la serie Fibonacci a generar: &amp;#039;))&lt;br /&gt;
# Utilizamos la función fib2() existente en el módulo fibo.py&lt;br /&gt;
# Esta función devuelve una lista de números&lt;br /&gt;
serie = fibo.fib2(n)&lt;br /&gt;
print &amp;#039;La serie Fibonacci hasta %s es %s&amp;#039; %(n, serie)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo Módulo Wand ===&lt;br /&gt;
[http://docs.wand-py.org/en/0.4.1/ Wand] es un módulo que nos permite manipular imágenes.&lt;br /&gt;
Instalación del módulo:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ apt-get install libmagickwand-dev&lt;br /&gt;
$ pip install Wand&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Calcular el tamaño de una imagen y cambiar el tamaño de la imagen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from wand.image import Image&lt;br /&gt;
in_name = &amp;#039;Mona_Lisa.jpg&amp;#039;&lt;br /&gt;
out_name = &amp;#039;Mona_Lisa_small.png&amp;#039;&lt;br /&gt;
&lt;br /&gt;
with Image(filename = in_name) as img:&lt;br /&gt;
    width = img.width&lt;br /&gt;
    height = img.height&lt;br /&gt;
print width&lt;br /&gt;
print height&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Cambiamos tamaño&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with Image(filename = in_name) as image:&lt;br /&gt;
    w, h = image.size&lt;br /&gt;
    new_width = 800&lt;br /&gt;
    factor = new_width/float(w)&lt;br /&gt;
    new_height = int(h * factor)&lt;br /&gt;
    image.resize(new_width, new_height, &amp;#039;lanczos&amp;#039;, 1.0)&lt;br /&gt;
    image.save(filename = out_name)&lt;br /&gt;
    width = image.width&lt;br /&gt;
    height = image.height&lt;br /&gt;
print width&lt;br /&gt;
print height&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo Módulo psutil ===&lt;br /&gt;
: Un módulo muy interesante para la administración de sistemas es [https://pypi.python.org/pypi/psutil psutil].&lt;br /&gt;
: Su instalación requiere que, previamente, tengamos los paquetes de desarrollo de Python:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ cd /tmp&lt;br /&gt;
$ wget https://bootstrap.pypa.io/get-pip.py&lt;br /&gt;
$ python get-pip.py&lt;br /&gt;
$ aptitude install python-dev 	# Python headers&lt;br /&gt;
$ apt-get install gcc&lt;br /&gt;
$ reboot&lt;br /&gt;
$ pip install psutil&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejemplo Librería matplotlib ===&lt;br /&gt;
: [http://matplotlib.org/index.html Librería Python de dibujo en 2D].&lt;br /&gt;
&lt;br /&gt;
--[[Python3|Volver]]&lt;/div&gt;</summary>
		<author><name>Vieites</name></author>
	</entry>
</feed>