我也遇到过这个问题.这可能不是理想的方式,但它有效.
我做了以下事情来解决这个问题 –
sudo apt-get install python3-gdbm
这为python3安装了gdbm库,但是因为apt-get和anaconda是两个独立的包管理器;这不会解决你的问题.我们主要这样做是为了获取.so共享库,我们将把它放在我们的anaconda安装中的正确文件夹中.接下来我们使用 – 找到.so文件的位置 –
dpkg -L python3-gdbm
这给了我们以下输出 –
/.
/usr
/usr/lib
/usr/lib/python3.5
/usr/lib/python3.5/lib-dynload
/usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so
/usr/share
/usr/share/doc
/usr/share/doc/python3-gdbm
/usr/share/doc/python3-gdbm/copyright
/usr/share/doc/python3-gdbm/changelog.Debian.gz
/usr/share/doc/python3-gdbm/README.Debian
我们需要的文件在这里 –
/usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so
将此文件复制到anaconda安装的lib-dynload文件夹中;对我来说这是 –
cp /usr/lib/python3.5/lib-dynload/_gdbm.cpython-35m-x86_64-linux-gnu.so /home/username/anaconda3/lib/python3.5/lib-dynload
请注意,这仅在复制.so的目录位于python的sys.path中时才有效.要找到要复制到的正确目录,假设您在激活的conda环境中,请运行:
python -c 'import sys; [print(x) for x in sys.path if "lib-dynload" in x]'
例如,在我的情况下,目录位于环境路径内,而不是在anaconda主库中. 〜/ anaconda3 / ENVS / myenvname / LIB / python3.7 / LIB-dynload
现在尝试在python中导入模块 –
from _gdbm import *
或者从命令行测试它:
python -m dbm.gnu
这应该可以解决您的问题.
请注意,我的是一个Ubuntu-16.06操作系统,我的python版本是3.5.2..so文件也可以与python3.6一起使用,如果没有你可以尝试安装python3.6-gdbm,虽然快速搜索ubuntu 16.04并没有给我任何结果.