Ningún módulo llamado 'gdbm'

30

Acabo de terminar de instalar Python 3.5.1 en mi Ubuntu, pero me enfrento a este mensaje de error, independientemente de si estoy instalando con Anaconda o con apt-get:

No module named 'gdbm'

que normalmente se muestra en mi terminal. También he intentado instalar gdbmusando:

sudo apt-get install gdbm

Pero no resuelve el problema. ¿Puedo obtener ayuda sobre cómo solucionar este problema de alguien aquí?

Asogwa Chukwuemeka Martins
fuente
Hola Asogwa, no estoy seguro de tu último comentario debajo de mi respuesta; ¿hiciste que funcionara? Por favor hagamelo saber.
Jacob Vlijm el
Como estas instalando ¿Lo estás haciendo con Anaconda o de alguna otra manera?
Seanny123
Todavía no puedo instalar Anaconda porque cada vez que quiero instalar Anaconda obtengo el mismo "error Ningún módulo llamado 'gdbm'"
Asogwa Chukwuemeka Martins
Lo siento, todavía estoy un poco confundido. Anaconda es un paquete que contiene Python3. Entonces, ¿está instalando Anaconda o está instalando Python3 por separado?
Seanny123
Estoy instalando Anaconda
Asogwa Chukwuemeka Martins el

Respuestas:

30
sudo apt-get install python3.5-gdbm

me ayudó

Artur Klesun
fuente
44
Por supuesto, el mismo patrón se aplica a Python 3.6.
SteveJ
¿Qué hacer en caso de Unable to locate package python3.6-gdbm? Intenté agregar un nuevo repositorio, pero el error inicial aparece nuevamente.
JCarlos
y el mismo patrón para python3.7-gdbm
Grijesh Chauhan
Para uso en Python 3.6sudo apt-get install python3.6-gdbm
unixeO
28

En mi caso, si intentara ejecutar algún comando que no existe en un shell bash, obtendría este grave error:

$ programthatdoesntexist
Traceback (most recent call last):
  File "/usr/lib/python3.5/dbm/gnu.py", line 4, in <module>
    from _gdbm import *
ImportError: No module named '_gdbm'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 7, in <module>
    import dbm.gnu as gdbm
  File "/usr/lib/python3.5/dbm/gnu.py", line 6, in <module>
    raise ImportError(str(msg) + ', please install the python3-gdbm package')
ImportError: No module named '_gdbm', please install the python3-gdbm package

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/command-not-found", line 27, in <module>
    from CommandNotFound.util import crash_guard
  File "/usr/lib/python3/dist-packages/CommandNotFound/__init__.py", line 3, in <module>
    from CommandNotFound.CommandNotFound import CommandNotFound
  File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 9, in <module>
    import gdbm
ImportError: No module named 'gdbm'

Ninguna de las respuestas anteriores funcionó en mi caso. Aunque este problema se ha resuelto, esto podría ayudar a alguien. Si todavía tiene este problema, quizás esto ayude:

Había instalado python3.6 desde el repositorio ppa.launchpad.net/jonathonf/python-3.6/ubuntu, y aparentemente eso rompió algunas cosas.

Al intentar reinstalar los paquetes command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller, noté que apt estaba extrayendo fuentes de aquí:

Get:1 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 python3-gdbm amd64 3.6.5-3~16.04.york0.2 [14.6 kB]

Para solucionar el problema, simplemente eliminé ese repositorio:

sed -i ' s/^/#/' /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-xenial.list

Y luego volví a ejecutar este comando (como root):

apt update ; apt purge python3-gdbm ; apt install command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller

Ahora todo vuelve a funcionar:

$ lol
No command 'lol' found, did you mean:
 Command 'sol' from package 'aisleriot' (main)
 Command 'col' from package 'bsdmainutils' (main)
lol: command not found
Chev_603
fuente
3
Acabo de tener lo mismo en 16.04 LTS. Creo que al observar el momento de su respuesta, una nueva actualización, ya sea en el repositorio jonathonf o en los repositorios estándar, tiene un conflicto. Como me mudé a pyenv para mis versiones de Python de todos modos, deshacerme del repositorio jonathonf es probablemente una buena idea para mí.
Phil
Gracias. Solo una nota de que las personas también pueden notar que la aplicación de informe de bloqueo se está disparando porque command-not-foundestá fallando.
jamesc
2
Tuve el mismo problema, y ​​esta solución funcionó. Al mismo tiempo, python3.6 -m venvestaba roto para mí. Cambiar al repositorio de Deadsnakes resolvió todos mis problemas. Ver también stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk
sudo ppa-purge ppa:jonathonf/python-3.6lo arregló para mí (reinstaló los paquetes necesarios automáticamente).
jfs
9

¿Has intentado instalar el paquete? python3-gdbm

sudo apt-get install python3-gdbm
0x7c0
fuente
44
Sí, lo hice, pero aún me da el mismo mensaje de error.
Asogwa Chukwuemeka Martins
Esto se debe a que ya no se nombra gdbmningún módulo . Uso _gdbm.
Matthias Urlichs
5

Tengo Python 3.6 instalado y trabajando. He intentado muchas cosas pero

sudo apt-get install python3.6-gdbm

Este comando me funcionó

Vishal Patel
fuente
2

Tuve el mismo problema y lo resolví:

sudo apt install python3-gdbm=3.5.1-1
dpkg -L python3-gdbm

ejecutando synaptic, para otra cosa, mostró que python3-gdbm necesitaba una actualización. Permití que Synaptic hiciera la actualización y: ahora recibo el mismo problema.

Cuando ejecuto los comandos anteriores nuevamente, recibo como mensaje, en la terminal, el primer comando: Los siguientes paquetes se DESCARGARÁN: python3-gdbm. Después de responder S a la pregunta si quiero continuar, el rastreo funciona nuevamente.

Entonces, claramente hay algo mal (error) en la última versión de python3-gdbm.

defossez
fuente
esto funcionó para mí!
wolfgang
1
sudo apt install python3-django

me ayudó

zxdc
fuente
44
Hola zxdc, quizás quieras explicar tu respuesta. ¿Instalar django también instala gdbm de alguna manera?
Hee Jin
1

Dependiendo de la versión de Python que instaló recientemente, UNO de los siguientes:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm
follada accidentalmente
fuente
0

Tuve este error cuando olvidé activar un entorno virtual de Python que se utilizó con el comando que estaba intentando ejecutar (el comando tx en mi caso).

Orienteerix
fuente