El comando lsb_release nos muestra información sobre la distribución Linux que está ejecutando el ordenador. En este post intentamos solucionar el error ImportError: No module named ‘lsb_release’ en Debian 8.11
Para empezar vamos a reproducir el error. Para ello podemos usar el comando lsb_release
o también podemos acceder al intérprete de comandos de Python e intentar importar el módulo lsb_release.
1 2 3 4 5 |
# lsb_release -a Traceback (most recent call last): File "/usr/bin/lsb_release", line 28, in <module> import lsb_release ImportError: No module named 'lsb_release' |
1 2 3 4 5 6 7 8 |
# python3 Python 3.4.2 (default, Sep 14 2019, 00:52:38) [GCC 4.9.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import lsb_release Traceback (most recent call last): File "<stdin>", line 1, in <module> ModuleNotFoundError: No module named 'lsb_release' |
Este error puede ser debido al intentar instalar o actualizar nuestra versión actual de Python o también porque nuestra versión de Python (en nuestro caso la versión 3.4) no lo tenga enlazado correctamente. Comprobamos los ejecutables de Python:
1 2 3 4 |
# which python /usr/bin/python # which python3 /usr/bin/python3 |
A continuación comprobamos las versiones tanto de Python como de Python3, para así chequear que no tengan enlazadas versiones diferentes.
1 2 3 4 |
# python -V Python 3.4.2 # python3 -V Python 3.4.2 |
Si las dos versiones coinciden podemos comprobar que nuestro sistema tiene el fichero lsb_release
del paquete lsb-release instalado en nuestro sistema.
1 2 |
# ls /usr/share/pyshared/lsb_release.py /usr/share/pyshared/lsb_release.py |
Si lo tenemos instalado creamos un enlace simbólico para la versión de Python que lo necesita (en mi caso la versión 3.4).
1 |
# sudo ln -s /usr/share/pyshared/lsb_release.py /usr/local/lib/python3.4/dist-packages/lsb_release.py |
Por último comprobamos que en nuestra versión Python importa correctamente el módulo para poder trabajar con el.
1 2 3 4 5 6 7 8 9 |
# python3 Python 3.4.2 (default, Sep 14 2019, 00:52:38) [GCC 4.9.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import lsb_release >>> lsb_release <module 'lsb_release' from '/usr/local/lib/python3.4/dist-packages/lsb_release.py'> >>> lsb_release.__file__ '/usr/local/lib/python3.4/dist-packages/lsb_release.py' |
Y también podemos comprobar que el comando lsb_release se ejecuta correctamente desde el shell.
1 2 3 4 5 6 |
# lsb_release -a LSB Version: core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: jessie |