ไม่มีโมดูลชื่อ 'gdbm'


30

ฉันเพิ่งติดตั้ง python 3.5.1 บน Ubuntu ของฉัน แต่ฉันพบกับข้อความแสดงข้อผิดพลาดนี้ไม่ว่าฉันจะติดตั้งกับ Anaconda หรือด้วยapt-get:

No module named 'gdbm'

ซึ่งปกติจะแสดงบนเทอร์มินัลของฉัน ฉันได้ลองติดตั้งgdbmโดยใช้:

sudo apt-get install gdbm

แต่ไม่ได้แก้ปัญหา ฉันสามารถขอความช่วยเหลือเกี่ยวกับวิธีแก้ไขปัญหานี้จากใครก็ได้ที่นี่หรือไม่


สวัสดี Asogwa ไม่แน่ใจเกี่ยวกับความคิดเห็นล่าสุดของคุณด้านล่างคำตอบของฉัน; คุณทำให้มันทำงานได้ไหม โปรดแจ้งให้เราทราบ
Jacob Vlijm

คุณติดตั้งอย่างไร? คุณกำลังทำกับอนาคอนดาหรืออย่างอื่นหรือไม่?
Seanny123

ฉันยังไม่สามารถติดตั้ง Anaconda ได้เพราะเมื่อใดก็ตามที่ฉันต้องการติดตั้ง Anaconda ฉันได้รับ "ข้อผิดพลาดไม่มีโมดูลชื่อ 'gdbm'"
Asogwa Chukwuemeka Martins

ขออภัยฉันยังสับสนอยู่เล็กน้อย อนาคอนด้าเป็นแพ็คเกจที่มี Python3 ดังนั้นคุณกำลังติดตั้งแอนาคอนดาหรือติดตั้ง 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สำหรับฉัน
Grijesh Chauhan

สำหรับ python 3.6 ให้ใช้sudo apt-get install python3.6-gdbm
unixeO

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 repo หรือ repos มาตรฐานมีข้อขัดแย้ง ตั้งแต่ที่ฉันย้ายไป pyenv สำหรับ Python เวอร์ชั่นของฉันการกำจัดที่เก็บ jonathonf น่าจะเป็นความคิดที่ดีสำหรับฉัน
Phil

ขอบคุณ เพียงทราบว่าผู้คนอาจสังเกตเห็นว่าแอปรายงานความผิดพลาดเกิดขึ้นเนื่องจากการทำงานcommand-not-foundล้มเหลว
jamesc

2
มีปัญหาเดียวกันและวิธีนี้ใช้ได้ผล ในเวลาเดียวกันpython3.6 -m venvก็ถูกทำลายสำหรับฉัน การเปลี่ยนเป็นที่เก็บ deadsnakes แก้ปัญหาทั้งหมดของฉันได้ ดูเพิ่มเติมที่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ใช้
Matthias Urlichs

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 ทำการอัปเดตและ: ตอนนี้ฉันกลับมาเหมือนเดิม

เมื่อรันคำสั่งข้างต้นอีกครั้งฉันจะได้รับข้อความใน terminal สำหรับคำสั่งแรก: แพ็คเกจต่อไปนี้จะถูกอัปเกรด: python3-gdbm หลังจากตอบคำถาม Y หากต้องการดำเนินการต่อการสืบค้นกลับจะทำงานอีกครั้ง

มีข้อผิดพลาดอย่างชัดเจนใน python3-gdbm รุ่นล่าสุด


มันใช้งานได้สำหรับฉัน!
wolfgang

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 ในกรณีของฉัน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.