Módulos de Terceros

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Python tiene una gran biblioteca de módulos integrados (baterías incluidas).

Hay aún más módulos de terceros. Consúltenlos en el Índice de Paquetes de Python o PyPi. O simplemente hagan una búsqueda en Google sobre un tema específico.

Cómo manejar las dependencias de terceros es un tema en constante evolución con Python. Esta sección solo cubre los conceptos básicos para ayudarlo a entender cómo funciona.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ObjectOrientedProgrammingGroup(["Object-Oriented Programming"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ObjectOrientedProgrammingGroup -.-> python/constructor("Constructor") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") python/PythonStandardLibraryGroup -.-> python/os_system("Operating System and System") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") subgraph Lab Skills python/python_shell -.-> lab-132739{{"Módulos de Terceros"}} python/importing_modules -.-> lab-132739{{"Módulos de Terceros"}} python/standard_libraries -.-> lab-132739{{"Módulos de Terceros"}} python/constructor -.-> lab-132739{{"Módulos de Terceros"}} python/regular_expressions -.-> lab-132739{{"Módulos de Terceros"}} python/os_system -.-> lab-132739{{"Módulos de Terceros"}} python/numerical_computing -.-> lab-132739{{"Módulos de Terceros"}} end

La ruta de búsqueda de módulos

sys.path es un directorio que contiene la lista de todos los directorios revisados por la declaración import. Echa un vistazo:

>>> import sys
>>> sys.path
... mira el resultado...
>>>

Si importas algo y no se encuentra en uno de esos directorios, obtendrás una excepción ImportError.

Módulos de la biblioteca estándar

Los módulos de la biblioteca estándar de Python suelen provenir de ubicaciones como /usr/local/lib/python3.6. Puedes comprobarlo con certeza intentando una prueba breve:

>>> import re
>>> re
<module 're' from '/usr/local/lib/python3.6/re.py'>
>>>

Simplemente examinar un módulo en el REPL es un buen consejo de depuración. Te mostrará la ubicación del archivo.

Módulos de terceros

Los módulos de terceros generalmente se encuentran en un directorio dedicado site-packages. Lo verás si sigues los mismos pasos que arriba:

>>> import numpy
>>> numpy
<module 'numpy' from '/usr/local/lib/python3.6/site-packages/numpy/__init__.py'>
>>>

Una vez más, examinar un módulo es un buen consejo de depuración si intentas entender por qué algo relacionado con import no funciona como se esperaba.

Instalando módulos

La técnica más común para instalar un módulo de terceros es utilizar pip. Por ejemplo:

$ python3 -m pip install packagename

Este comando descargará el paquete e instalará en el directorio site-packages.

Problemas

  • Puedes estar utilizando una instalación de Python que no controlas directamente.
    • Una instalación aprobada por la empresa
    • Estás utilizando la versión de Python que viene con el sistema operativo.
  • Puedes no tener permiso para instalar paquetes globales en el computador.
  • Podrían haber otras dependencias.

Entornos virtuales

Una solución común a los problemas de instalación de paquetes es crear un llamado "entorno virtual" para ti mismo. Naturalmente, no existe "un solo modo" de hacerlo: de hecho, hay varias herramientas y técnicas en competencia. Sin embargo, si estás utilizando una instalación estándar de Python, puedes intentar escribir esto:

$ sudo apt install python3-venv
$ python -m venv mypython
bash %

Después de esperar un momento, tendrás un nuevo directorio mypython que es tu propia pequeña instalación de Python. Dentro de ese directorio encontrarás un directorio bin/ (Unix) o un directorio Scripts/ (Windows). Si ejecutas el script activate que se encuentra allí, "activará" esta versión de Python, convirtiéndola en el comando python predeterminado para el shell. Por ejemplo:

$ source mypython/bin/activate
(mypython) bash %

A partir de aquí, ahora puedes comenzar a instalar paquetes de Python para ti mismo. Por ejemplo:

(mypython) $ python -m pip install pandas

...

Para fines de experimentación y prueba de diferentes paquetes, un entorno virtual generalmente funcionará bien. Por otro lado, si estás creando una aplicación y tiene dependencias específicas de paquetes, ese es un problema ligeramente diferente.

Manejar dependencias de terceros en tu aplicación

Si has escrito una aplicación y tiene dependencias específicas de terceros, uno de los desafíos es la creación y preservación del entorno que incluye tu código y las dependencias. Lamentablemente, este ha sido un área de gran confusión y cambios frecuentes a lo largo de la vida de Python. Sigue evolucionando incluso ahora.

En lugar de proporcionar información que pronto estará desfasada, te remito a la Guía del Usuario de Empaquetado de Python.

Ejercicio 9.4: Crear un entorno virtual

Verifica si puedes recrear los pasos de creación de un entorno virtual e instalación de pandas en él, tal como se muestra anteriormente.

Resumen

¡Felicidades! Has completado el laboratorio de Módulos de Terceros. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.