I just finished installing python 3.5.1 on my Ubuntu, but am faced with this error message, regardless if I'm installing with Anaconda or with apt-get:

No module named 'gdbm'

that normally displays on my terminal. I have also tried installing gdbm using:

sudo apt-get install gdbm

but doesn't solve the problem. Can I get a help on how to fix this problem from anyone here?

  • Hi Asogwa, not sure about your latest comment below my answer; did you get it to work? Please let me know. – Jacob Vlijm Jan 13 '16 at 8:44
  • How are you installing? Are you doing it with Anaconda or some other way? – Seanny123 Jan 13 '16 at 17:34
  • I am not yet able to install Anaconda because when ever I want to install Anaconda I get the same "error No module named 'gdbm'" – Asogwa Chukwuemeka Martins Jan 13 '16 at 17:39
  • Sorry, I'm still a bit confused. Anaconda is a package that contains Python3. So are you installing Anaconda or are you installing Python3 separately. – Seanny123 Jan 13 '16 at 17:43
  • Am installing Anaconda – Asogwa Chukwuemeka Martins Jan 13 '16 at 17:45

In my case, if I tried running any command that doesn't exist in a bash shell I would get this gross error:

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

None of the answers above worked in my case. Although this problem has been solved, this might help someone. If you are still having this issue, maybe this will help:

I had installed python3.6 from the repository ppa.launchpad.net/jonathonf/python-3.6/ubuntu , and apparently that broke some things.

When tying to reinstall the packages command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller, I noticed that apt was pulling sources from here:

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]

To fix the issue, I simply removed that repository:

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

And than re-ran this command (as root):

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

Now, everything works again:

$ 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
    I just had the same on 16.04 LTS. I think looking at the timing of your answer a new update either in the jonathonf repo or standard repos has a conflict. Since I moved to pyenv for my Python versions anyway, getting rid of the jonathonf repository is probably a good idea for me. – Phil May 10 at 8:37
  • Thanks. Just a note that people might also notice the crash report app firing because command-not-found is failing. – jamesc May 12 at 16:49
  • This did it! Thanks! – darkhipo May 14 at 3:43
  • 2
    Had the same problem, and this solution worked. At the same time, python3.6 -m venv was broken for me. Changing to the deadsnakes repository solved all my issues. See also stackoverflow.com/a/50197283/7599943 – Jonas Dahlbæk May 15 at 10:23
  • sudo ppa-purge ppa:jonathonf/python-3.6 fixed it for me (it reinstalled the necessary packages automatically). – jfs May 16 at 11:28
sudo apt-get install python3.5-gdbm

helped me

  • 1
    Of course, the same pattern applies for python 3.6. – SteveJ Dec 14 '17 at 21:56

Have you tried installing the package python3-gdbm

sudo apt-get install python3-gdbm

I have python 3.6 install and working i have tried many things but

sudo apt-get install python3.6-gdbm

This command worked for me

sudo apt install python3-django

helped me

  • 3
    Hi zxdc, you might want to explain your answer. Does installing django also install gdbm somehow? – Emily May 8 at 15:37

I had the same issue and got it solved by:

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

running synaptic, for something else, displayed that python3-gdbm needed an update. I allowed synaptic to make the update and: Now I get the same issue back.

When running above commands again I get as message, in the terminal, for the first command: The following packages will be DOWNGRADED : python3-gdbm. After answering Y to the question if I want to continue, traceback works again.

So there is clearly something wrong (bug) in the latest version of python3-gdbm.

  • this worked for me! – wolfgang May 17 at 14:25

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.