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
sudo apt-get install python3.5-gdbm

helped me

| improve this answer | |
  • 5
    Of course, the same pattern applies for python 3.6. – SteveJ Dec 14 '17 at 21:56
  • What to do in case of Unable to locate package python3.6-gdbm? I tried to add a new repository, but the initial error appears again. – JCarlosR Mar 22 '19 at 3:34
  • 1
    and the same pattern for python3.7-gdbm for me – Grijesh Chauhan May 10 '19 at 6:29
  • 1
    For python 3.6 use sudo apt-get install python3.6-gdbm – unixeO Oct 13 '19 at 18:25

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
| improve this answer | |
  • 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 '18 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 '18 at 16:49
  • 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 '18 at 10:23
  • sudo ppa-purge ppa:jonathonf/python-3.6 fixed it for me (it reinstalled the necessary packages automatically). – jfs May 16 '18 at 11:28

Have you tried installing the package python3-gdbm

sudo apt-get install python3-gdbm
| improve this answer | |
  • 5
    Yes, I did that, but still giving me the same error message. – Asogwa Chukwuemeka Martins Jan 13 '16 at 2:39
  • This is because there is no module named gdbm any more. Use _gdbm. – Matthias Urlichs Dec 13 '18 at 7:00

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

| improve this answer | |

Depending on version of python you recently installed, ONE of the following:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm
| improve this answer | |

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.

| improve this answer | |
  • this worked for me! – wolfgang May 17 '18 at 14:25
sudo apt install python3-django

helped me

| improve this answer | |
  • 4
    Hi zxdc, you might want to explain your answer. Does installing django also install gdbm somehow? – Hee Jin May 8 '18 at 15:37

I had this error when I had forgot to activate a Python virtual environment that was used with the command I was trying to run (The tx command in my case).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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