Nenhum módulo chamado 'gdbm'

28

Acabei de instalar o python 3.5.1 no meu Ubuntu, mas me deparei com essa mensagem de erro, independentemente de eu estar instalando com o Anaconda ou com apt-get :

No module named 'gdbm'

que normalmente é exibido no meu terminal. Eu também tentei instalar gdbm usando:

sudo apt-get install gdbm

mas não resolve o problema. Posso obter ajuda sobre como corrigir esse problema de alguém aqui?

    
por Asogwa Chukwuemeka Martins 13.01.2016 / 00:57

7 respostas

26

sudo apt-get install python3.5-gdbm

me ajudou

    
por Artur Klesun 20.04.2016 / 08:31
24

No meu caso, se eu tentei executar qualquer qualquer comando que não existe em um shell bash eu teria esse erro grosseiro:

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

Nenhuma das respostas acima funcionou no meu caso. Embora este problema tenha sido resolvido, isso pode ajudar alguém. Se você ainda tiver esse problema, talvez isso ajude:

Eu tinha instalado o python3.6 do repositório ppa.launchpad.net/jonathonf/python-3.6/ubuntu , e aparentemente isso quebrou algumas coisas.

Ao ligar para reinstalar os pacotes command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller , notei que o apt estava puxando fontes daqui:

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 corrigir o problema, eu simplesmente removi esse repositório:

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

E que reexecutou esse comando (como root):

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

Agora, tudo funciona de novo:

$ lol
No command 'lol' found, did you mean:
 Command 'sol' from package 'aisleriot' (main)
 Command 'col' from package 'bsdmainutils' (main)
lol: command not found
    
por Chev_603 10.05.2018 / 01:02
8

Você já tentou instalar o pacote python3-gdbm

sudo apt-get install python3-gdbm
    
por stedotmartin 13.01.2016 / 01:12
5

Eu tenho o Python 3.6 instalado e funcionando Eu tentei muitas coisas, mas

sudo apt-get install python3.6-gdbm

Este comando funcionou para mim

    
por Vishal Patel 29.12.2017 / 08:31
2

Eu tive o mesmo problema e resolvi por:

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

executando o synaptic, para outra coisa, mostrou que o python3-gdbm precisava de uma atualização. Eu permiti que o synaptic fizesse a atualização e: Agora recebo o mesmo problema.

Ao executar os comandos acima novamente, recebo como mensagem, no terminal, o primeiro comando: Os seguintes pacotes serão DOWNGRADED: python3-gdbm. Depois de responder Y à pergunta se quero continuar, o traceback funciona novamente.

Portanto, há claramente algo errado (bug) na versão mais recente do python3-gdbm.

    
por defossez 16.05.2018 / 08:14
1
sudo apt install python3-django

me ajudou

    
por zxdc 07.05.2018 / 08:03
0

Eu tive esse erro quando esqueci de ativar um ambiente virtual Python que era usado com o comando que eu estava tentando executar (o comando tx no meu caso).

    
por 08.10.2018 / 19:54

Tags