Ż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?


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


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

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

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


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.


to zadziałało dla mnie!
Wolfgang

1
sudo apt install python3-django

pomogło mi


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

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).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.