Żaden moduł o nazwie „gdbm”

30

Właśnie skończyłem instalować Python 3.5.1 na moim Ubuntu, ale pojawia się ten komunikat o błędzie, niezależnie od tego, czy instaluję z Anacondą czy z apt-get:

No module named 'gdbm'

który normalnie wyświetla się na moim terminalu. Próbowałem również zainstalować gdbmprzy użyciu:

sudo apt-get install gdbm

ale nie rozwiązuje problemu. Czy mogę uzyskać pomoc w rozwiązaniu tego problemu od kogokolwiek tutaj?

Asogwa Chukwuemeka Martins
źródło
Cześć Asogwa, nie jestem pewien swojego ostatniego komentarza poniżej mojej odpowiedzi; dostałeś to do pracy? Proszę daj mi znać.
Jacob Vlijm
Jak się instalujesz? Robisz to z Anacondą lub w inny sposób?
Seanny123
Nie jestem jeszcze w stanie zainstalować Anacondy, ponieważ kiedykolwiek chcę zainstalować Anacondę, pojawia się ten sam „błąd Brak modułu o nazwie„ gdbm ””
Asogwa Chukwuemeka Martins
Przepraszam, wciąż jestem trochę zdezorientowany. Anaconda to pakiet zawierający Python3. Czy instalujesz Anacondę, czy instalujesz Python3 osobno?
Seanny123
Instaluję Anaconda
Asogwa Chukwuemeka Martins

Odpowiedzi:

29
sudo apt-get install python3.5-gdbm

pomogło mi

Artur Klesun
źródło
4
Oczywiście ten sam wzór dotyczy Pythona 3.6.
SteveJ
Co robić w przypadku Unable to locate package python3.6-gdbm? Próbowałem dodać nowe repozytorium, ale błąd początkowy pojawia się ponownie.
JCarlos
i ten sam wzór dla python3.7-gdbmmnie
Grijesh Chauhan
W przypadku Pythona 3.6sudo apt-get install python3.6-gdbm
unixeO
28

W moim przypadku, jeśli spróbuję uruchomić dowolne polecenie, które nie istnieje w powłoce bash, otrzymam ten poważny błąd:

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

Żadna z powyższych odpowiedzi nie zadziałała w moim przypadku. Chociaż ten problem został rozwiązany, może komuś pomóc. Jeśli nadal masz ten problem, być może pomoże to:

Zainstalowałem python3.6 z repozytorium ppa.launchpad.net/jonathonf/python-3.6/ubuntui najwyraźniej to popsuło niektóre rzeczy.

Podczas wiązania w celu ponownej instalacji pakietów command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstallerzauważyłem, że apt pobierał stąd źródła:

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]

Aby rozwiązać problem, po prostu usunąłem to repozytorium:

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

A następnie ponownie uruchomiłem to polecenie (jako root):

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

Teraz wszystko działa ponownie:

$ 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
źródło
3
Właśnie miałem to samo na 16.04 LTS. Myślę, że patrząc na czas twojej odpowiedzi nowa aktualizacja albo w repozytorium jonathonf, albo w repozytorium standardowym ma konflikt. Ponieważ i tak przeniosłem się do Pyenv dla moich wersji Pythona, pozbywanie się repozytorium jonathonf jest prawdopodobnie dla mnie dobrym pomysłem.
Phil
Dzięki. Wystarczy pamiętać, że ludzie mogą również zauważyć, że aplikacja raportu o awarii uruchamia się z powodu command-not-foundniepowodzenia.
jamesc
2
Miałem ten sam problem i to rozwiązanie zadziałało. W tym samym czasie python3.6 -m venvzostał dla mnie zepsuty. Przejście do repozytorium deadsnakes rozwiązało wszystkie moje problemy. Zobacz także stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk
sudo ppa-purge ppa:jonathonf/python-3.6naprawiłem to dla mnie (automatycznie ponownie zainstalował niezbędne pakiety).
jfs
9

Czy próbowałeś zainstalować pakiet? python3-gdbm

sudo apt-get install python3-gdbm
0x7c0
źródło
4
Tak, zrobiłem to, ale wciąż otrzymuję ten sam komunikat o błędzie.
Asogwa Chukwuemeka Martins
Jest tak, ponieważ nie ma już żadnego modułu o nazwie gdbm. Zastosowanie _gdbm.
Matthias Urlichs,
5

Mam zainstalowaną i działającą wersję Python 3.6 Próbowałem wielu rzeczy, ale

sudo apt-get install python3.6-gdbm

To polecenie działało dla mnie

Vishal Patel
źródło
2

Miałem ten sam problem i rozwiązałem go poprzez:

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

uruchomione synaptic, dla czegoś innego, pokazało, że python3-gdbm wymaga aktualizacji. Pozwoliłem synaptic na wykonanie aktualizacji i: Teraz otrzymuję ten sam problem z powrotem.

Gdy ponownie uruchomię powyższe polecenia, otrzymuję jako wiadomość, w terminalu, pierwsze polecenie: Następujące pakiety zostaną POBRANE: python3-gdbm. Po udzieleniu odpowiedzi Y na pytanie, czy chcę kontynuować, funkcja śledzenia wstecznego działa ponownie.

Więc najwyraźniej coś jest nie tak (błąd) w najnowszej wersji python3-gdbm.

defossez
źródło
to zadziałało dla mnie!
Wolfgang
1
sudo apt install python3-django

pomogło mi

zxdc
źródło
4
Cześć zxdc, możesz wyjaśnić swoją odpowiedź. Czy instalacja django również w jakiś sposób instaluje gdbm?
Hee Jin,
1

W zależności od ostatnio zainstalowanej wersji Pythona, JEDEN z poniższych:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm
przypadkowo przeleciał
źródło
0

Miałem ten błąd, gdy zapomniałem aktywować środowisko wirtualne Python, które było używane z poleceniem, które próbowałem uruchomić (w moim przypadku polecenie tx).

Orienteerix
źródło