Không có mô-đun có tên 'gdbm'


30

Tôi vừa hoàn tất cài đặt python 3.5.1 trên Ubuntu của mình, nhưng tôi gặp phải thông báo lỗi này, bất kể tôi đang cài đặt với Anaconda hay với apt-get:

No module named 'gdbm'

thường hiển thị trên thiết bị đầu cuối của tôi. Tôi cũng đã thử cài đặt gdbmbằng cách sử dụng:

sudo apt-get install gdbm

nhưng không giải quyết được vấn đề. Tôi có thể nhận trợ giúp về cách khắc phục sự cố này từ bất kỳ ai ở đây không?


Xin chào Asogwa, không chắc chắn về nhận xét mới nhất của bạn bên dưới câu trả lời của tôi; bạn đã làm cho nó làm việc? Làm ơn cho tôi biết.
Jacob Vlijm

Bạn đang cài đặt như thế nào? Bạn đang làm điều đó với Anaconda hoặc một số cách khác?
Seanny123

Tôi chưa thể cài đặt Anaconda vì khi nào tôi muốn cài đặt Anaconda, tôi cũng gặp "lỗi Không có mô-đun có tên 'gdbm'"
Asogwa Chukwuemeka Martins

Xin lỗi, tôi vẫn còn một chút bối rối. Anaconda là một gói có chứa Python3. Bạn đang cài đặt Anaconda hay bạn đang cài đặt Python3 riêng.
Seanny123

Đang cài đặt Anaconda
Asogwa Chukwuemeka Martins

Câu trả lời:


29
sudo apt-get install python3.5-gdbm

đã giúp tôi


4
Tất nhiên, mô hình tương tự áp dụng cho python 3.6.
SteveJ

Làm gì trong trường hợp Unable to locate package python3.6-gdbm? Tôi đã cố gắng thêm một kho lưu trữ mới, nhưng lỗi ban đầu lại xuất hiện.
JCarlos

và mô hình tương tự python3.7-gdbmcho tôi
Grijesh Chauhan

Đối với python 3.6 sử dụngsudo apt-get install python3.6-gdbm
unixeO

28

Trong trường hợp của tôi, nếu tôi thử chạy bất kỳ lệnh nào không tồn tại trong bash shell, tôi sẽ gặp lỗi thô này:

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

Không có câu trả lời nào ở trên làm việc trong trường hợp của tôi. Mặc dù vấn đề này đã được giải quyết, nhưng điều này có thể giúp được ai đó. Nếu bạn vẫn gặp phải vấn đề này, có thể điều này sẽ giúp:

Tôi đã cài đặt python3.6 từ kho lưu trữ ppa.launchpad.net/jonathonf/python-3.6/ubuntu, và rõ ràng điều đó đã phá vỡ một số thứ.

Khi buộc cài đặt lại các gói command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller, tôi nhận thấy apt đang lấy nguồn từ đây:

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]

Để khắc phục sự cố, tôi chỉ cần xóa kho lưu trữ đó:

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

Và hơn là chạy lại lệnh này (với quyền root):

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

Bây giờ, mọi thứ hoạt động trở lại:

$ 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
Tôi chỉ có điều tương tự vào ngày 16.04 LTS. Tôi nghĩ rằng việc xem xét thời gian trả lời của bạn một bản cập nhật mới hoặc trong repo jonathonf hoặc repos tiêu chuẩn có mâu thuẫn. Vì dù sao tôi đã chuyển sang pyenv cho các phiên bản Python của mình, nên việc thoát khỏi kho lưu trữ jonathonf có lẽ là một ý tưởng tốt cho tôi.
Phil

Cảm ơn. Chỉ cần một lưu ý rằng mọi người cũng có thể nhận thấy ứng dụng báo cáo sự cố bắn vì command-not-foundkhông thành công.
jamesc

2
Có cùng một vấn đề, và giải pháp này đã làm việc. Đồng thời, python3.6 -m venvđã bị phá vỡ cho tôi. Thay đổi sang kho lưu trữ giả đã giải quyết tất cả các vấn đề của tôi. Xem thêm stackoverflow.com/a/50197283/7599943
Jonas Dahlbæk

sudo ppa-purge ppa:jonathonf/python-3.6đã sửa nó cho tôi (nó tự động cài đặt lại các gói cần thiết).
jfs

9

Bạn đã thử cài đặt gói python3-gdbm

sudo apt-get install python3-gdbm

4
Vâng, tôi đã làm điều đó, nhưng vẫn cho tôi thông báo lỗi tương tự.
Asogwa Chukwuemeka Martins

Điều này là do không có mô-đun được đặt tên gdbmnữa. Sử dụng _gdbm.
Matthias Urlichs

5

Tôi đã cài đặt và làm việc với python 3.6, tôi đã thử nhiều thứ nhưng

sudo apt-get install python3.6-gdbm

Lệnh này đã làm việc cho tôi


2

Tôi đã có cùng một vấn đề và đã giải quyết nó bằng cách:

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

đang chạy synap, đối với một thứ khác, đã hiển thị rằng python3-gdbm cần một bản cập nhật. Tôi đã cho phép synaptic thực hiện cập nhật và: Bây giờ tôi nhận lại vấn đề tương tự.

Khi chạy lại các lệnh trên, tôi nhận được dưới dạng tin nhắn, trong thiết bị đầu cuối, cho lệnh đầu tiên: Các gói sau sẽ là DOWNGRADED: python3-gdbm. Sau khi trả lời Y cho câu hỏi nếu tôi muốn tiếp tục, trac trở lại hoạt động.

Vì vậy, rõ ràng có một cái gì đó sai (lỗi) trong phiên bản mới nhất của python3-gdbm.


Điều này làm việc cho tôi!
wolfgang

1
sudo apt install python3-django

đã giúp tôi


4
Xin chào zxdc, bạn có thể muốn giải thích câu trả lời của bạn. Có phải cài đặt django cũng cài đặt gdbm bằng cách nào đó?
Hee Jin

1

Tùy thuộc vào phiên bản python bạn đã cài đặt gần đây, MỘT trong những điều sau đây:

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

0

Tôi đã gặp lỗi này khi tôi quên kích hoạt môi trường ảo Python được sử dụng với lệnh tôi đang cố chạy (Lệnh tx trong trường hợp của tôi).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.