command line

¿Cómo puedo comprobar si un módulo está instalado en Python,e instalarlo si es necesario?

En la terminal,después de iniciar Python,¿cómo voy a saber cuáles son los módulos presentes en python? Supongamos que necesito aprender los módulos NumPy y SciPy.

  • ¿Cómo lo instalaré si no está instalado?
  • ¿Cómo puedo saber si ya está instalado?

Cómo saber si un módulo de python está instalado o no en el sistema: Puedes hacer una prueba muy fácil en la terminal,

$ python -c "import math"
$ echo $?
0                                # módulo matemático existe en el sistema

$ python -c "import numpy"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named numpy
$ echo $?
1                                # módulo numpy no existe en el sistema

¿Cómo lo instalaré si no está instalado?

Puede instalar un módulo específico descargando los paquetes respectivos del repositorio, por ejemplo, puede instalar scipy como,

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

Alternativamente , también puede instalar un módulo de python usando python-pip como lo sugiere Zack Titan en el comentario a continuación , para instalar numpy puede usar

pip install numpy

Advertencia: Se recomienda encarecidamente instalar los módulos de python usando solo el repositorio oficial de Ubuntu y no usar el método pip comosuperusuario (es decir, como root o usando sudo ). En algunos casos, puede dejar su sistema inutilizable al romper el sistema python.

Cómo instalar paquetes usando pip en un entorno virtual local.




En caso de que no queramos importar indeseadamente un módulo en cuestión (lo que sucedería en una declaración de try ), podemos hacer uso de sys.modules para probar los módulos que están instalados y fueron importados antes.

En el tema del shell de python:

>>> import sys

A continuación,pruebe los módulos instalados:

>>> 'numpy' in sys.modules
True
>>> 'scipy' in sys.modules
False

Tenga en cuenta que solo los módulos que se importaron antes dan True en esta prueba, todos los demás módulos (incluso si están instalados) dan como resultado False.

Otra alternativa para try una declaración de import ación en la consola de python es llamar a la función de help() . Esto no dará una documentación para módulos no instalados, por ejemplo

>>> help('scipy')
no Python documentation found for 'scipy'

La salida de documentos de ayuda muy largos de los módulos instalados puede interrumpirse conQ.

Ahora, para instalar los módulos que faltan, se recomienda utilizar la administración de paquetes de Ubuntu (y no la pip de Python) porque necesitamos acceso a la raíz y también para evitar estropear nuestro sistema que depende en gran medida de Python. Para el módulo en cuestión esto sería, por ejemplo:

sudo apt-get install python-scipy ## for Python2
sudo apt-get install python3-scipy ## for Python3

Después de la instalación, podemos agregarlos al diccionario sys.modules importándolos una vez.