Немає модуля з назвою "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

Відповіді:


29
sudo apt-get install python3.5-gdbm

мені допомогли


4
Звичайно, така ж схема застосовується і для python 3.6.
SteveJ

Що робити у випадку Unable to locate package python3.6-gdbm? Я спробував додати нове сховище, але початкова помилка з’являється знову.
JCarlos

та сама картина для python3.7-gdbmмене
Гріеш Чаухан

Для 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. Я думаю, що дивлячись на терміни вашої відповіді, нове оновлення або в renat jonathonf repo, або у стандартних репозах має конфлікт. Оскільки я все-таки перейшов до pyenv для моїх версій Python, позбутися сховища jonathonf - це, мабуть, хороша ідея для мене.
Філ

Спасибі. Лише зауважте, що люди можуть також помітити запуск звіту про аварійне завершення роботи, оскільки command-not-foundвін не працює.
jamesc

2
Була така ж проблема, і це рішення спрацювало. У той же час python3.6 -m venvдля мене зламався. Перехід до сховища глухих змій вирішив усі мої проблеми. Дивіться також stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk

sudo ppa-purge ppa:jonathonf/python-3.6виправили це для мене (він автоматично встановив необхідні пакети).
jfs

9

Ви спробували встановити пакет python3-gdbm

sudo apt-get install python3-gdbm

4
Так, я це зробив, але все-таки дав мені те саме повідомлення про помилку.
Asogwa Chukwuemeka Martins

Це тому, що вже не існує модуля з іменем gdbm. Використовуйте _gdbm.
Маттіас Урліхс

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

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

При повторному запуску вище команд я отримую як повідомлення, в терміналі, першу команду: Наступні пакети будуть ВИЗНАЧЕННІ: python3-gdbm. Після відповіді Y на питання, чи хочу я продовжувати, traceback знову працює.

Тож явно щось не так (помилка) в останній версії python3-gdbm.


це працювало для мене!
вольфганг

1
sudo apt install python3-django

мені допомогли


4
Привіт zxdc, ви можете пояснити свою відповідь. Чи встановлення django також якось встановлює gdbm?
Хе Джин

1

Залежно від версії python, яку ви нещодавно встановили, ONE з наступного:

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.