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