Aucun module nommé 'gdbm'

30

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 également essayé d'installer en gdbmutilisant:

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 de quiconque ici?

Asogwa Chukwuemeka Martins
la source
Salut Asogwa, pas sûr de votre dernier commentaire ci-dessous ma réponse; l'avez-vous fait fonctionner? S'il vous plaît, faites-moi savoir.
Jacob Vlijm
Comment installez-vous? Le faites-vous avec Anaconda ou d'une autre manière?
Seanny123
Je ne suis pas encore en mesure d'installer Anaconda car chaque fois que je souhaite installer Anaconda, je reçois le même "erreur Aucun module nommé 'gdbm'" "
Asogwa Chukwuemeka Martins
Désolé, je suis toujours un peu confus. Anaconda est un package qui contient Python3. Vous installez donc Anaconda ou vous installez Python3 séparément.
Seanny123
J'installe

Réponses:

30
sudo apt-get install python3.5-gdbm

m'a aidé

Artur Klesun
la source
4
Bien sûr, le même modèle s'applique à python 3.6.
SteveJ
Que faire en cas de Unable to locate package python3.6-gdbm? J'ai essayé d'ajouter un nouveau référentiel, mais l'erreur initiale réapparaît.
JCarlos
et le même schéma pour python3.7-gdbmmoi
Grijesh Chauhan
Pour python 3.6, utilisezsudo apt-get install python3.6-gdbm
unixeO
28

Dans mon cas, si j'essayais d'exécuter une commande 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, cela a cassé certaines choses.

En tentant de réinstaller les packages command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller, j'ai remarqué qu'apt tirait 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 réexécuté 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
Chev_603
la source
3
Je viens d'avoir la même chose sur 16.04 LTS. Je pense qu'en regardant le moment de votre réponse, une nouvelle mise à jour soit dans le repo jonathonf soit dans les repos standard a un conflit. Depuis que je suis passé à pyenv pour mes versions Python de toute façon, se débarrasser du dépôt jonathonf est probablement une bonne idée pour moi.
Phil
Merci. Juste une note que les gens pourraient également remarquer le déclenchement de l'application de rapport de crash en raison d'un command-not-foundéchec.
jamesc
2
Eu le même problème, et cette solution a fonctionné. Dans le même temps, a python3.6 -m venvété rompu pour moi. Passer au dépôt deadsnakes a résolu tous mes problèmes. Voir aussi stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk
sudo ppa-purge ppa:jonathonf/python-3.6corrigé pour moi (il a réinstallé automatiquement les packages nécessaires).
jfs
9

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

sudo apt-get install python3-gdbm
0x7c0
la source
4
Oui, je l'ai fait, mais en me donnant toujours le même message d'erreur.
Asogwa Chukwuemeka Martins
C'est parce qu'il n'y a plus de module nommé gdbm. Utilisez _gdbm.
Matthias Urlichs
5

J'ai python 3.6 installé et travaillé j'ai essayé beaucoup de choses mais

sudo apt-get install python3.6-gdbm

Cette commande a fonctionné pour moi

Vishal Patel
la source
2

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, montrait que python3-gdbm avait besoin d'une mise à jour. J'ai autorisé Synaptic à effectuer la mise à jour et: Maintenant, je reçois le même problème.

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

Il y a donc clairement quelque chose qui ne va pas (bug) dans la dernière version de python3-gdbm.

defossez
la source
cela a fonctionné pour moi!
wolfgang
1
sudo apt install python3-django

m'a aidé

zxdc
la source
4
Salut zxdc, vous voudrez peut-être expliquer votre réponse. Est-ce que l'installation de django installe également gdbm d'une manière ou d'une autre?
Hee Jin
1

Selon la version de python que vous avez récemment installée, UNE des options suivantes:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm
accidentellement donné
la source
0

J'ai eu 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).

Orienteerix
la source