- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在 OS X 上用 python 2.7.2 开发的应用程序。我使用模块 shelve 并且在 mac 上似乎默认为 bsddb。该程序不会在装有 ActiveState python 2.7 的 Windows 7 机器上运行,因为模块 bsddb 不存在并且不在 ActiveState 的包管理器 (pypm) 中。 ActiveState 的文档说在 v 2.6 时已弃用。我猜它会尝试 bdddb,因为创建数据库的 OS X python 默认为 bsddb。当我删除搁置数据库并在 Windows 上运行它时,它很乐意使用其他一些底层数据库。 Mac 的 python 也乐此不疲。
所以我认为我应该强制使用非 bdsdb 后端来搁置。就像 gdbm 模块一样。但我不知道该怎么做。
最佳答案
您可以在调用shelve.open
之前通过设置anydbm._defaultmod
来设置创建的数据库的类型。
这适用于 Python 2.6(也许适用于 2.7?),但由于 anydbm._defaultmod
是一个私有(private)变量,请注意这是一个 hack。
anydbm._defaultmod=__import__('gdbm')
例如:
import anydbm
import whichdb
import contextlib
anydbm._defaultmod=__import__('gdbm')
filename='/tmp/shelf.dat'
with contextlib.closing(shelve.open(filename)) as f: pass
result=whichdb.whichdb(filename)
print(result)
# gdbm
关于python shelve ... bsddb deprecated ...如何搁置以使用另一个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7523205/
我正在尝试使用 shelve使用 Python 3.3。建议使用 with shelve.open('spam.db') as db:... 语法来确保我们关闭“连接”。但是,当我尝试它时,出现以下错
shelve -- 用来持久化任意的Python对象 这几天接触了Python中的shelve这个module,感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具。
我正在用 Python 做一个项目,涉及大量与持久字典的交互工作。如果我不进行交互式开发,我可以使用 contextlib.looking 并相当有信心架子最终会被写入磁盘。但就目前情况而言,没有任何
是shelve只读模式坏了?文档说 flag 参数按照 dbm.open 中的说明工作。所以我想如果我在阅读模式下打开我不应该能够改变搁置对象。 页面here似乎还建议修改以只读方式打开的搁置对象应该
我将让以下终端 session 说明一切: >>> import shelve >>> s = shelve.open('TestShelve') >>> from collections impor
对于我的 python 应用程序,我正在考虑使用 shelve , 标准库的一部分。将有数百个进程,每个进程都向同一个搁置对象写入一些内容。写作将始终是将新的键值对添加到货架上。键是唯一的,因此没有两
我一直在使用 Shelve 作为文档存储。键是一个字符串化的整数,值只是字符串中的一些 html。不幸的是,我的脚本最终在数据库中放入了太多条目,以至于发生了错误(我手头没有确切的条目)。数据库的大小
在 TFS 中,我过去常常搁置我的更改作为备份,然后再尝试一些有风险的事情或试验一些事情。 如果一切顺利,我刚刚删除了搁置。否则,我取消搁置备份并继续。 我没有兴趣与任何人分享这些更改。 Git 中的
在 Perforce 中,什么是“搁置”文件?搁置在工作区中打开以供编辑的文件的目的是什么? 最佳答案 来自 Perforce documentation : Shelving is the proc
我有一个执行以下操作的 Python 应用程序: 由另一个进程每 2-3 分钟调用一次,以便使用 with shelve.open(shelvefilename, flag='c') 来存储对象。 被
我正在尝试卡住涉及使用搁置模块的应用程序。为了卡住它,我正在使用 GUI2EXE python 代码并利用 cx_freeze 部分(如果我删除搁置部分,一切都会很好)。 当我去运行我编译的应用程序时
嘿,大家好,我正在为学校做一个项目,我必须问 10 个数学问题,然后存储他们的分数名称和类(class),但唯一的问题是我似乎无法立即回到搁置的工作。下面是我试图开始工作的代码,任何帮助都会很好。 g
我有一个在 OS X 上用 python 2.7.2 开发的应用程序。我使用模块 shelve 并且在 mac 上似乎默认为 bsddb。该程序不会在装有 ActiveState python 2.7
我要 用户A 能够在 Perforce 中创建一个更改列表,然后将其搁置。那么我想要 用户B 能够取消搁置该更改列表并提交它。 这听起来很简单,但 Perforce 上架似乎并不像我期望的那样工作。当
我正在使用 PyMemoize 库来缓存协程。我装饰了协程,但是当 Python 调用它时,我得到: TypeError: can't pickle coroutine objects 发生这种情况是
我已经设置了一个模拟操作系统的 Python 脚本。它有一个命令提示符和一个虚拟文件系统。我正在使用 shelve 模块来模拟文件系统,它是多维的以支持目录层次结构。但是,我无法执行“cd”命令。我不
我正在尝试编写一个使用 shelve 的内存库持久存储返回值。如果我有内存函数调用其他内存函数,我想知道如何正确打开 shelf 文件。 import shelve import functools
我正在运行一个 Python 程序,该程序在 pickle 之上使用 shelve 模块。运行这个程序后,有时我得到一个输出文件 a.data 但有时我得到三个输出文件 a.data.bak, a.d
在 perforce 的源代码管理选项中,我看不到从特定变更列表触发构建的选项。可以这样做吗? 最佳答案 替代解决方案@catchingUp也有可能使用“构建审核”操作点触发构建(可以在构建历史记录正
我安装了 hg shelve(不是阁楼)扩展,并且我想发布补丁。在 git 中,它是 git stash drop 。如何使用搁置扩展来执行此操作? 最佳答案 来自Mercurial shelve d
我是一名优秀的程序员,十分优秀!