Nessun modulo chiamato 'gdbm'


30

Ho appena finito di installare Python 3.5.1 sul mio Ubuntu, ma mi trovo di fronte a questo messaggio di errore, indipendentemente dal fatto che sto installando con Anaconda o con apt-get:

No module named 'gdbm'

che normalmente viene visualizzato sul mio terminale. Ho anche provato a installare gdbmusando:

sudo apt-get install gdbm

ma non risolve il problema. Posso ottenere un aiuto su come risolvere questo problema da chiunque qui?


Ciao Asogwa, non sono sicuro del tuo ultimo commento sotto la mia risposta; l'hai fatto funzionare? Per favore mi faccia sapere.
Jacob Vlijm,

Come stai installando? Lo stai facendo con Anaconda o in qualche altro modo?
Seanny123,

Non riesco ancora ad installare Anaconda perché quando mai voglio installare Anaconda ottengo lo stesso "errore Nessun modulo chiamato 'gdbm'"
Asogwa Chukwuemeka Martins

Scusa, sono ancora un po 'confuso. Anaconda è un pacchetto che contiene Python3. Quindi stai installando Anaconda o stai installando Python3 separatamente.
Seanny123,

Sto installando Anaconda
Asogwa Chukwuemeka Martins il

Risposte:


30
sudo apt-get install python3.5-gdbm

mi ha aiutato


4
Naturalmente, lo stesso modello si applica a Python 3.6.
SteveJ

Cosa fare in caso di Unable to locate package python3.6-gdbm? Ho provato ad aggiungere un nuovo repository, ma l'errore iniziale appare di nuovo.
JCarlos il

e lo stesso schema per python3.7-gdbmme
Grijesh Chauhan

Per python 3.6 usaresudo apt-get install python3.6-gdbm
unixeO il

28

Nel mio caso, se provassi a eseguire qualsiasi comando che non esiste in una shell bash otterrei questo grosso errore:

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

Nessuna delle risposte sopra ha funzionato nel mio caso. Sebbene questo problema sia stato risolto, ciò potrebbe aiutare qualcuno. Se hai ancora questo problema, forse questo ti aiuterà:

Avevo installato python3.6 dal repository ppa.launchpad.net/jonathonf/python-3.6/ubuntu, e apparentemente ciò ha rotto alcune cose.

Quando command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstallerho provato a reinstallare i pacchetti , ho notato che apt stava estraendo le fonti da qui:

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]

Per risolvere il problema, ho semplicemente rimosso quel repository:

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

E poi riesegui questo comando (come root):

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

Ora tutto funziona di nuovo:

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

3
Ho appena avuto lo stesso su 16.04 LTS. Penso che guardando al momento della risposta un nuovo aggiornamento nel repository jonathonf o repository standard abbia un conflitto. Da quando sono passato a Pyenv per le mie versioni di Python, comunque, sbarazzarsi del repository jonathonf è probabilmente una buona idea per me.
Phil

Grazie. Solo una nota che le persone potrebbero anche notare che l'app di segnalazione di arresto anomalo si attiva perché command-not-foundnon funziona.
Jamesc,

2
Aveva lo stesso problema e questa soluzione ha funzionato. Allo stesso tempo, è python3.6 -m venvstato rotto per me. Passare al repository deadsnakes ha risolto tutti i miei problemi. Vedi anche stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk

sudo ppa-purge ppa:jonathonf/python-3.6riparato per me (ha reinstallato automaticamente i pacchetti necessari).
jfs,


5

Ho installato e funzionante con Python 3.6, ma ho provato molte cose

sudo apt-get install python3.6-gdbm

Questo comando ha funzionato per me


2

Ho avuto lo stesso problema e l'ho risolto da:

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

l'esecuzione di synaptic, per qualcos'altro, ha mostrato che python3-gdbm necessitava di un aggiornamento. Ho permesso a Synaptic di effettuare l'aggiornamento e: ora ho ripreso lo stesso problema.

Quando eseguo di nuovo i comandi sopra, ricevo come messaggio, nel terminale, il primo comando: I seguenti pacchetti saranno DOWNGRADED: python3-gdbm. Dopo aver risposto a Y alla domanda se voglio continuare, traceback funziona di nuovo.

Quindi c'è chiaramente qualcosa di sbagliato (bug) nell'ultima versione di python3-gdbm.


questo ha funzionato per me!
Wolfgang,

1
sudo apt install python3-django

mi ha aiutato


4
Ciao zxdc, potresti voler spiegare la tua risposta. L'installazione di django installa in qualche modo anche gdbm?
Hee Jin,

1

A seconda della versione di Python installata di recente, UNA delle seguenti opzioni:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm

0

Ho avuto questo errore quando mi ero dimenticato di attivare un ambiente virtuale Python utilizzato con il comando che stavo cercando di eseguire (il comando tx nel mio caso).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.