首页 > python gdbm_GDBM不适用于Python 3.6和anaconda

python gdbm_GDBM不适用于Python 3.6和anaconda

我也遇到过这个问题.这可能不是理想的方式,但它有效.

我做了以下事情来解决这个问题 –

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并没有给我任何结果.

更多相关:

  • 1、去官网下载和自己系统匹配的文件:  英文网址:https://nodejs.org/en/download/  中文网址:http://nodejs.cn/download/  通过  uname -a  命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统),如图...

  • 一、简介 LLVM LLVM(之前称为低级虚拟机Low Level Virtual Machine)是一种非常强大的编译器基础架构框架,专门为使用您喜爱的编程语言编写的程序的编译时、链接时和运行时优化而设计。LLVM 可运行于若干个不同的平台之上,它以能够生成快速运行的代码而著称。 LLVM以C++编写而成,对开发者保持开放,并...

  • Ubuntu 12.04 64bit中安装firefox 26中的flash player插件的方法 昨天, 有最新的firefox 26更新了,可是我在软件更新中无法下载到ubuntu官方源中的flash plugin,详细的情况可以参见如下网页,这个问题我一年前也遇到过,特记录下来,以备后来查阅. http://blog....

  • 问题:使用 QT 编写视频展现程序报错找不到运行时库文件 解决办法: 首先 sudo find / -name libpulse.so* 然后 sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so 对于libpulse-mainloop-glib...

  • OpenCV 一、计算机 中的配置: 在 计算机 -> 属性 -> 高级系统属性 -> 高级 -> 环境变量 -> 系统变量 -> Path 中添加: D:Program Filescpp libopencvuildx64vc15in 二、Visual Studio 中的配置: 1.在 VC++目录 ->...

  • 1.首先要知道什么是ORACLE的客户端: Oracle Instant client 是oracle提供的简便客户端, 支持多种平台. 可从oracle网站下载, 下载地址为http://www.oracle.com/technology/tech/oci/instantclient/index.html 包括如下内容: Inst...

  • 什么是dcevm        dcevm(DynamicCode Evolution Virtual Machine)是java hostspot的补丁(严格上来说是修改),允许(并非无限制)在运行环境下修改加载的类文件.当前虚拟机只允许修改方法体(method bodies),decvm,可以增加 删除类属性、方法,甚至改变一个类...