2013-09-03 4 views
0

Я пытаюсь использовать массовый загрузчик в моей среде разработки, и у меня возникают проблемы. Здесь ошибка я получаю:GAE Python bulk uploader дает ошибку: «ImportError: No module named model»

File "volume_loader.py", line 3, in <module> 
    import model 
ImportError: No module named model 

Я в моем каталоге приложения, называется «ЦСИ», когда я запускаю эту команду:

appcfg.py upload_data --config_file=volume_loader.py --filename=lds_scriptures_volumes.csv --kind=Volume --url=http://localhost:8080/_ah/remote_api 

Вот мой volume_loader.py. (Который сидит в моем каталоге Src)

from google.appengine.ext import db 
from google.appengine.tools import bulkloader 
import model 

class VolumeLoader(bulkloader.Loader): 
    def __init__(self): 
     bulkloader.Loader.__init__(self, 'Volume', 
            [('volume_id', int), 
            ('volume_title', str), 
            ('volume_title_long', str), 
            ('volume_subtitle', str), 
            ('lds_org', str), 
            ('num_books', int), 
            ('num_chapters', int), 
            ('num_verses', int) 
            ]) 

loaders = [VolumeLoader] 

В моем файле model.py я определил «Volume», который является то, что я пытаюсь импортировать:

class Volume(Base): 
    volume_id = ndb.IntegerProperty(required=True) 
    volume_title = ndb.StringProperty(required=True) 
    volume_title_long = ndb.StringProperty(required=True) 
    volume_subtitle = ndb.StringProperty(required=True) 
    lds_org = ndb.StringProperty(required=True) 
    num_books = ndb.IntegerProperty(required=True) 
    num_chapters = ndb.IntegerProperty(required=True) 
    num_verses = ndb.IntegerProperty(required=True) 

Любые идеи, почему модель не может быть найдена из volume_loader?

ответ

0

Ну, я думаю, что нашел ответ, но не похоже, что я смогу использовать массовый загрузчик в любом случае, так как мои объекты используют ndb.

Смотреть ответы:

bulkloader not importing ndb.model

dowload app engine ndb entities via bulk exporter/bulk uploader

+0

вы можете смешать дб и ОПРС в том же хранилище, как и к хранилищу данных, это все те же (или я так понимаю) под крышки , Таким образом, может быть стоит загрузить их как .db-модели в volumeloader, а затем просто использовать их через .ndb. –

+0

Спасибо за предложение Paul, однако, прежде чем я его прочитал, я закончил просто преобразование своего CSV в json, используя какой-либо онлайн-инструмент. Затем я настраиваю скрипт для загрузки в json, а затем разбираю его и создаю объекты оттуда. Это хорошо работает на местном уровне. Надеюсь, это сработает, когда я пойду на производство. –