Нет модуля с именем 'gdbm'


30

Я только что закончил установку python 3.5.1 на свою Ubuntu, но сталкиваюсь с этим сообщением об ошибке, независимо от того, устанавливаю ли я с Anaconda или с apt-get:

No module named 'gdbm'

это обычно отображается на моем терминале. Я также попытался установить gdbmс помощью:

sudo apt-get install gdbm

но не решает проблему. Могу ли я получить помощь по устранению этой проблемы у кого-либо здесь?


Привет Асогва, не уверен насчет твоего последнего комментария под моим ответом; ты заставил его работать? Пожалуйста, дайте мне знать.
— Джейкоб Влейм

Как вы устанавливаете? Ты делаешь это с Анакондой или каким-то другим способом?
— Seanny123

Я пока не могу установить Anaconda, потому что когда я хочу установить Anaconda, я получаю ту же ошибку «Нет модуля с именем« gdbm »»
— Asogwa Chukwuemeka Martins

Извините, я все еще немного растерялся. Anaconda - это пакет, содержащий Python3. Так вы устанавливаете Anaconda или вы устанавливаете Python3 отдельно.
— Seanny123

Я устанавливаю Anaconda
— Asogwa Chukwuemeka Martins

Ответы:


30
sudo apt-get install python3.5-gdbm

помог мне


4
Конечно, тот же шаблон применяется для Python 3.6.
— SteveJ

Что делать в случае Unable to locate package python3.6-gdbm? Я попытался добавить новый репозиторий, но первоначальная ошибка появляется снова.
— Карлос

и тот же шаблон для python3.7-gdbmменя
— Grijesh Chauhan

Для Python 3.6 используйтеsudo apt-get install python3.6-gdbm
— unixeO

28

В моем случае, если бы я попытался выполнить какую-либо команду, которой нет в оболочке bash, я получил бы эту грубую ошибку:

$ 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, вероятно, является хорошей идеей для меня.
— Фил

Спасибо. Просто обратите внимание, что люди могут также заметить, что приложение отчета о сбое запускается из-за command-not-foundсбоя.
— Jamesc

2
Была такая же проблема, и это решение работало. В то же время python3.6 -m venvбыл сломан для меня. Переход на хранилище deadsnakes решил все мои проблемы. См. Также stackoverflow.com/a/50197283/7599943
— Йонас Дальбек

sudo ppa-purge ppa:jonathonf/python-3.6исправил это для меня (он автоматически переустанавливал необходимые пакеты).
— JFS


5

У меня установлен и работает Python 3.6 Я пробовал много вещей, но

sudo apt-get install python3.6-gdbm

У меня эта команда сработала


2

У меня была та же проблема, и я решил ее:

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

запуск synaptic, для чего-то другого, показал, что python3-gdbm нуждается в обновлении. Я позволил synaptic сделать обновление и: теперь я получаю ту же проблему обратно.

При повторном запуске вышеуказанных команд я получаю сообщение в терминале для первой команды: Следующие пакеты будут DOWNGRADED: python3-gdbm. После ответа Y на вопрос, хочу ли я продолжить, traceback снова работает.

Так что в последней версии python3-gdbm явно что-то не так (ошибка).


это сработало для меня!
— Вольфганг

1
sudo apt install python3-django

помог мне


4
Привет zxdc, вы можете объяснить свой ответ. Установка django также как-то устанавливает gdbm?
— Хи Джин,

1

В зависимости от версии Python, которую вы недавно установили, ОДИН из следующих:

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

0

У меня была эта ошибка, когда я забыл активировать виртуальную среду Python, которая использовалась с командой, которую я пытался запустить (команда tx в моем случае).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.