Nenhum módulo chamado 'gdbm'

30

Acabei de instalar o python 3.5.1 no Ubuntu, mas sou confrontado com esta mensagem de erro, independentemente de estar instalando com o Anaconda ou com apt-get:

No module named 'gdbm'

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

sudo apt-get install gdbm

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

Asogwa Chukwuemeka Martins
fonte
Oi Asogwa, não tenho certeza sobre o seu último comentário abaixo da minha resposta; Conseguiu fazê-lo funcionar? Por favor deixe-me saber.
Jacob Vlijm
Como você está instalando? Você está fazendo isso com o Anaconda ou de alguma outra maneira?
Seanny123
Eu ainda não sou capaz de instalar Anaconda, porque sempre que eu quiser instalar Anaconda I obter o mesmo "erro No módulo chamado 'gdbm'"
Asogwa Chukwuemeka Martins
Desculpe, ainda estou um pouco confuso. O Anaconda é um pacote que contém Python3. Então você está instalando o Anaconda ou o Python3 separadamente.
Seanny123
Estou instalando o Anaconda
Asogwa Chukwuemeka Martins

Respostas:

29
sudo apt-get install python3.5-gdbm

me ajudou

Artur Klesun
fonte
4
Obviamente, o mesmo padrão se aplica ao python 3.6.
precisa
O que fazer em caso de Unable to locate package python3.6-gdbm? Tentei adicionar um novo repositório, mas o erro inicial aparece novamente.
JCarlos 22/03
e o mesmo padrão para python3.7-gdbmmim
Grijesh Chauhan
Para uso em python 3.6sudo apt-get install python3.6-gdbm
unixeO 13/10
28

No meu caso, se eu tentasse executar qualquer comando que não existe em um shell bash, receberia este erro grave:

$ 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 esse problema tenha sido resolvido, isso pode ajudar alguém. Se você ainda está tendo esse problema, talvez isso ajude:

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

Ao tentar 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, simplesmente removi esse repositório:

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

E então reexecutou este 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 novamente:

$ 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
fonte
3
Eu só tinha o mesmo em 16.04 LTS. Eu acho que, olhando para o momento da sua resposta, uma nova atualização no repositório jonathonf ou nos repositórios padrão tem um conflito. Desde que mudei para o pyenv para minhas versões do Python, de qualquer forma, livrar-me do repositório jonathonf é provavelmente uma boa ideia para mim.
22418 Phil
Obrigado. Apenas observe que as pessoas também podem perceber que o aplicativo de relatório de falhas command-not-foundestá sendo acionado porque está falhando.
jamesc
2
Teve o mesmo problema, e esta solução funcionou. Ao mesmo tempo, python3.6 -m venvfoi quebrado para mim. Mudar para o repositório deadsnakes resolveu todos os meus problemas. Consulte também stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk
sudo ppa-purge ppa:jonathonf/python-3.6corrigi-lo para mim (reinstalou os pacotes necessários automaticamente).
JFS
9

Você já tentou instalar o pacote python3-gdbm

sudo apt-get install python3-gdbm
0x7c0
fonte
4
Sim, eu fiz isso, mas ainda estou me dando a mesma mensagem de erro.
Asogwa Chukwuemeka Martins 13/01
Isso ocorre porque não há mais módulo nomeado gdbm. Use _gdbm.
Matthias Urlichs
5

Eu tenho python 3.6 instalar e funcionando eu tentei muitas coisas, mas

sudo apt-get install python3.6-gdbm

Este comando funcionou para mim

Vishal Patel
fonte
2

Eu tive o mesmo problema e resolvi-o com:

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

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

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 eu quiser continuar, o traceback funciona novamente.

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

defossez
fonte
isso funcionou para mim!
Wolfgang
1
sudo apt install python3-django

me ajudou

zxdc
fonte
4
Olá zxdc, você pode querer explicar sua resposta. A instalação do django também instala o gdbm de alguma forma?
Hee Jin
1

Dependendo da versão do python que você instalou recentemente, um dos seguintes:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm
accidentallygivenfuck
fonte
0

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

Orienteerix
fonte