没有名为“ gdbm”的模块


30

我刚刚在Ubuntu上完成python 3.5.1的安装,但是无论我是使用Anaconda还是使用apt-get以下安装,都遇到了此错误消息:

No module named 'gdbm'

通常会显示在我的终端上 我也尝试gdbm使用以下方法进行安装:

sudo apt-get install gdbm

但不能解决问题。我可以从这里的任何人那里获得有关如何解决此问题的帮助吗?


嗨,Asogwa,不确定我的回答下方是否有您的最新评论;你得到它的工作?请告诉我。
Jacob Vlijm '16

您如何安装?您是在使用Anaconda还是其他方式?
Seanny123 '16

我还无法安装Anaconda,因为每当我想要安装Anaconda时,都会收到相同的“错误,没有模块名为'
gdbm

抱歉,我还是有点困惑。Anaconda是一个包含Python3的软件包。因此,您是要安装Anaconda还是要单独安装Python3。
Seanny123 '16

我正在安装Anaconda
Asogwa Chukwuemeka Martins,

Answers:



28

就我而言,如果我尝试运行bash shell中不存在的任何命令,我将得到以下严重错误:

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

在我的情况下,以上答案均无效。尽管此问题已解决,但可能会对某人有所帮助。如果您仍然遇到此问题,也许这会有所帮助:

我已经从存储库中安装了python3.6 ppa.launchpad.net/jonathonf/python-3.6/ubuntu,显然这打破了一些东西。

当试图重新安装软件包时command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller,我注意到apt从这里获取资源:

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]

要解决此问题,我只是删除了该存储库:

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

然后重新运行此命令(以root用户身份):

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

现在,一切再次正常:

$ 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
我在16.04 LTS上也一样。我认为,在回答问题的时机上,jonathonf存储库或标准存储库中的新更新存在冲突。因为无论如何我都将pyenv转换为Python版本,所以摆脱jonathonf存储库对我来说可能是一个好主意。
菲尔(Phil)

谢谢。请注意,人们可能还会注意到崩溃报告应用因为command-not-found失败而被触发。
jamesc

2
遇到相同的问题,此解决方案有效。同时,python3.6 -m venv对我来说很伤心。更改为deadsnakes存储库解决了我所有的问题。另请参阅stackoverflow.com/a/50197283/7599943
JonasDahlbæk18年

sudo ppa-purge ppa:jonathonf/python-3.6为我修复了此问题(它自动重新安装了必要的软件包)。
jfs



2

我遇到了同样的问题,并通过以下方法解决了问题:

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

在运行突触时,对于其他信息,表明python3-gdbm需要更新。我允许突触进行更新,并且: 现在我又收到了同样的问题。

当再次运行以上命令时,在终端中出现第一个命令的消息:以下软件包将被降级:python3-gdbm。如果我要继续对问题回答Y,则回溯将再次起作用。

因此,在最新版本的python3-gdbm中显然存在错误(错误)。


这对我有用!
沃尔夫冈

1
sudo apt install python3-django

帮助过我


4
嗨,zxdc,您可能想解释一下您的答案。安装django是否还会以某种方式安装gdbm?

1

根据蟒蛇的版本,最近安装,ONE如下:

sudo apt-get install python3.5-gdbm
sudo apt-get install python3.6-gdbm
sudo apt-get install python3.7-gdbm

0

当我忘记激活要尝试运行的命令(本例中为tx命令)使用的Python虚拟环境时,出现了此错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.