1

我对 Python 和 GAE 还是很陌生。我在本地服务器上有一个运行良好的应用程序。我可以将实体添加到我的数据存储中,我可以查看我的网站等:一切都很好。

现在我正在尝试使用 bulkloader 将实体添加到我的数据存储区。我按照https://developers.google.com/appengine/docs/python/tools/uploadingdata上的教程进行操作。我的装载机如下:

from google.appengine.ext import ndb
from google.appengine.tools import bulkloader
import my_model

class ArticleLoader(bulkloader.Loader):
  def __init__(self):
    bulkloader.Loader.__init__(self, 'Article',
                               [('title', str),
                                ('author', str)
                                ])

loaders = [ArticleLoader]

我收到错误消息:

No module named my_model

有没有人可以解决这个问题?

注意:我只使用一个目录。my_model所以我的加载器与导入模块的其他文件位于同一位置。

4

2 回答 2

1

如果您PYTHONPATH的设置不正确,也会发生这种情况。如果您使用的是 Linux,请在运行 Bulkloader 之前尝试运行它:

export PYTHONPATH=$PYTHONPATH:.

这会将您的当前目录附加到您的PYTHONPATH并且应该使您的my_model模块可见。由于我的记忆力很差而且我总是忘记这样做,所以我最终使用了一个简单的 shell 脚本,它在开头就包含了这个脚本,然后是 bulkload 命令本身。

如果您在 Windows 上,您应该能够使用sys.path.append. 尚未对此进行测试,但您可以尝试将其添加到您的脚本中(请注意,这也适用于 Linux):

import sys
# ...
sys.path.append('.')
于 2012-12-09T00:51:19.970 回答
0

您的代码应位于名为my_model.py. 您收到该错误是因为没有名为my_module. 可能值得一读 Python模块文档。

于 2012-12-09T00:43:38.270 回答