2015-11-05 3 views
0

Я использую модуль для сохранения объекта. Он работает нормально, но когда я пытаюсь создать приложение с помощью py2app, он перестает работать. Следующий код работает нормально, за исключением того, после замораживания с использованием py2app:Модуль Python shove не работает после создания py2app на mac

import os 
from shove import Shove 

if __name__ == '__main__': 
    home=os.path.expanduser("~") 
    path = os.path.join(home, 'testdb') 
    uri = 'file://{0}'.format(path) 
    print path 
    print uri 

    db = Shove(uri) 
    print db.keys() 

    db['1'] = 'dog' 
    db['2'] = 'cat' 
    db.sync() 
    db.close() 

setup.py файл содержит следующее:

from setuptools import setup 

OPTIONS = dict(
argv_emulation = True, 
includes=['future_builtins','concurrent.futures'] 
) 

DATA_FILES = [] 


setup(
    app='highlightdb.py', 
    data_files=DATA_FILES, 
    options={'py2app': OPTIONS}, 
    setup_requires=['py2app'], 
) 

отслеживающий Я получаю:

highlightdb[68150]:  db = Shove(uri) 
highlightdb[68150]: File "shove/core.pyc", line 23, in __init__ 
highlightdb[68150]: File "shove/_imports.pyc", line 46, in store_backend 
highlightdb[68150]: KeyError: 'file' 

Что может проблема будет?

ответ

0

Я обнаружил, что проблема заключается в том, что функция перекоса в основном реализована с использованием плагинов, которые загружаются с использованием pkg_resources.iter_entry_points. К сожалению, py2app не поддерживает iter_entry_points. Тем не менее я нашел this, что может быть возможным обходным путем.

0

Вы перезапустили Python после установки Shove?

Тот же KeyError: 'файл' происходит, если вы не перезагружаете: вы можете импортировать библиотеку, но Shove не может загружать какие-либо модули.

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