web-dev-qa-db-fra.com

Aucun module nommé 'gdbm'

Je viens de terminer l'installation de python 3.5.1 sur mon Ubuntu, mais je suis confronté à ce message d'erreur, que j'installe avec Anaconda ou avec apt-get:

No module named 'gdbm'

qui s'affiche normalement sur mon terminal. J'ai aussi essayé d'installer gdbm en utilisant:

Sudo apt-get install gdbm

mais ne résout pas le problème. Puis-je obtenir de l'aide sur la façon de résoudre ce problème auprès de quiconque ici?

Sudo apt-get install python3.5-gdbm

m'a aidé

26
Artur Klesun

Dans mon cas, si j'essayais de lancer la commande any qui n'existe pas dans un shell bash, j'obtiendrais cette erreur grossière:

$ 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'

Aucune des réponses ci-dessus n'a fonctionné dans mon cas. Bien que ce problème ait été résolu, cela pourrait aider quelqu'un. Si vous rencontrez toujours ce problème, cela vous aidera peut-être:

J'avais installé python3.6 à partir du référentiel ppa.launchpad.net/jonathonf/python-3.6/ubuntu, et apparemment, certaines choses se sont cassées.

En essayant de réinstaller les paquets command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller, j'ai remarqué qu'apt était en train de tirer des sources d'ici:

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]

Pour résoudre le problème, j'ai simplement supprimé ce référentiel:

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

Et que re-couru cette commande (en tant que root):

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

Maintenant, tout fonctionne à nouveau:

$ lol
No command 'lol' found, did you mean:
 Command 'sol' from package 'aisleriot' (main)
 Command 'col' from package 'bsdmainutils' (main)
lol: command not found
25
Chev_603

Avez-vous essayé d'installer le paquet python3-gdbm

Sudo apt-get install python3-gdbm
8
0x7c0

J'ai python 3.6 installer et travailler j'ai essayé beaucoup de choses, mais

Sudo apt-get install python3.6-gdbm

Cette commande a fonctionné pour moi

5
Vishal Patel

J'ai eu le même problème et l'ai résolu par:

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

l’exécution de synaptic, pour autre chose, a montré que python3-gdbm avait besoin d’une mise à jour. J'ai autorisé Synaptic à effectuer la mise à jour et à: le problème est le même.

Lorsque j'exécute à nouveau les commandes ci-dessus, le message suivant apparaît dans le terminal pour la première commande: Les packages suivants seront DOWNGRADED: python3-gdbm. Après avoir répondu à la question par Y si je souhaite continuer, le traçage en arrière fonctionne à nouveau.

Il y a donc clairement un problème (bogue) dans la dernière version de python3-gdbm.

2
defossez
Sudo apt install python3-Django

m'a aidé

1
zxdc

J'avais cette erreur lorsque j'avais oublié d'activer un environnement virtuel Python utilisé avec la commande que j'essayais d'exécuter (la commande tx dans mon cas).

0
Orienteerix