这是我的加载器类,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 解决方案:将它们放在同一个文件中!它有效,但我对导入有什么不了解?
请您参考如下方法:
您必须将模型目录添加到 PYTHONPATH。来自文档:
(which is in your PYTHONPATH, such as the directory where you'll run the tool)
如果你不这样做,python 就找不到你的模块。
