这是我的装载机类 ItemLoader.py :
from google.appengine.ext import db
from google.appengine.tools import bulkloader
import models
class ItemLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, 'Item', [('CSIN', int), # not too DRY...
('name', str),
('price', int),
('quantity', int)
]
)
loaders = [ItemLoader]
这是我的实施, models.py :
from google.appengine.ext import db
class Item(db.Model):
CSIN = db.IntegerProperty()
name = db.StringProperty()
price = db.IntegerProperty() # OK that it's an int?
quantity = db.IntegerProperty()
这些基本上是从GAE instructions复制的。当我运行appcfg.py
时,我收到此错误:
ImportError: No module named models
我做错了什么?如果我拿出那个import语句,我会得到一个不同的错误:
... No implementation for kind 'Item'
更新1:我尝试直接从Google的说明中复制/粘贴,我也遇到了相同的导入错误。
更新2 :将类型实施的名称更改为models.py
。仍然无法正常工作。 ItemLoader.py
和models.py
都位于同一目录中。
更新3: hacky解决方案:将它们放在同一个文件中!它有效,但我不了解进口产品?
答案 0 :(得分:1)
您必须将模型目录添加到PYTHONPATH。来自docs:
(which is in your PYTHONPATH, such as the directory where you'll run the tool)
如果你不这样做,python找不到你的模块。