首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建Shelve.open失败

创建Shelve.open失败
EN

Stack Overflow用户
提问于 2014-12-11 08:43:44
回答 1查看 945关注 0票数 1

在我的开发服务器上使用shelve时遇到了问题。当我调用shelve.open()时,我的本地机器将创建一个新文件。但是当我将文件推送到远程服务器时,发生了一个错误。它看起来像是在尝试首先找到文件,但失败了,因为它不在那里。我不会更改文件扩展名。我的本地机器是Ubuntu14,我的遥控器是python 6。这是CentOS堆栈跟踪。Python 2.6。

代码语言:javascript
复制
File "/var/lib/jenkins/................/translation.py", line 51, in _market
    lang_db = shelve.open(market + "_pydb")
File "/usr/lib64/python2.6/shelve.py", line 239, in open
  return DbfilenameShelf(filename, flag, protocol, writeback)
File "/usr/lib64/python2.6/shelve.py", line 223, in __init__
  Shelf.__init__(self, anydbm.open(filename, flag), protocol, writeback)
File "/usr/lib64/python2.6/anydbm.py", line 83, in open
  return mod.open(file, flag, mode)
File "/usr/lib64/python2.6/dbhash.py", line 19, in open
  return bsddb.hashopen(file, flag, mode)
File "/usr/lib64/python2.6/bsddb/__init__.py", line 361, in hashopen
  d.open(file, db.DB_HASH, flags, mode)
DBNoSuchFileError: (2, 'No such file or directory')

对于记录,我将缺省值更改为dumbdbm,但它仍然显示IO错误(找不到文件)。

代码语言:javascript
复制
import anydbm
anydbm._defaultmod = __import__('dumbdbm')
EN

回答 1

Stack Overflow用户

发布于 2014-12-11 09:16:50

我发现当我推送到存储库时,git没有包含我正在查找的目录,因为它是空的。如果您尝试将shelve.open与一个不存在的目录中的参数一起使用,它将给您一个IO错误。我只需强制创建目录,现在它就可以工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27413519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档