2014-12-11 4 views
0

У меня возникли проблемы с использованием полки на моем dev-сервере. Моя локальная машина будет создавать новый файл просто отлично, когда я вызываю shelve.open(). Но когда я нажимаю файл на удаленный сервер, возникает ошибка. Похоже, что он пытается найти файл первым, и он терпит неудачу, потому что его нет. Я не изменяю расширение файла. Моя локальная машина - Ubuntu 14, а мой пульт - CentOS 6. Вот трассировка стека python. Python 2.6.Shelve.open не удалось создать

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 и она по-прежнему дает мне ошибку ввода-вывода (файл не найден).

import anydbm 
anydbm._defaultmod = __import__('dumbdbm') 

ответ

0

Я узнал, что когда я нажимал на репозиторий, git не включал каталог, в котором я искал, потому что он был пуст. Если вы попытаетесь использовать shelve.open с аргументом, который находится в директории, которая не существует, это даст вам ошибку ввода-вывода. Я просто заставил создать каталог, и теперь он работает.

Смежные вопросы