Google app engine bulkloader未导入ndb.model
我对Python和GAE还是新手。我在本地服务器上有一个运行正常的应用程序。我可以添加实体到我的数据存储,我可以查看我的网站,等等:一切都很好 现在我正尝试使用bulkloader将实体添加到我的数据存储中。我在第二节学习了教程。我的加载程序如下:Google app engine bulkloader未导入ndb.model,google-app-engine,bulkloader,Google App Engine,Bulkloader,我对Python和GAE还是新手。我在本地服务器上有一个运行正常的应用程序。我可以添加实体到我的数据存储,我可以查看我的网站,等等:一切都很好 现在我正尝试使用bulkloader将实体添加到我的数据存储中。我在第二节学习了教程。我的加载程序如下: from google.appengine.ext import ndb from google.appengine.tools import bulkloader import my_model class ArticleLoader(bulkl
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\u model
模块的另一个文件位于同一位置。您的代码应该位于名为my\u model.py
的文件中。您收到该错误是因为没有名为my\u module
的模块。可能值得一读Python和文档。您的代码应该位于名为my_model.py
的文件中。您收到该错误是因为没有名为my\u module
的模块。可能值得一读Python和文档。如果您的PYTHONPATH
设置不正确,也可能发生这种情况。如果您在Linux上,请在运行Bulkloader之前尝试运行以下命令:
export PYTHONPATH=$PYTHONPATH:.
这会将当前目录附加到您的PYTHONPATH
,并应使您的my_model
模块可见。由于我的内存很差,而且我总是忘记做这件事,所以我最终使用了一个简单的shell脚本,它在开始时包含了这个脚本,然后是bulkload命令本身
如果您在Windows上,您应该能够使用sys.path.append
修改路径。尚未对此进行测试,但您可以尝试将其添加到脚本中(请注意,这也适用于Linux):
导入系统
# ...
sys.path.append(“.”)
如果您的
PYTHONPATH
设置不正确,也会发生这种情况。如果您在Linux上,请在运行Bulkloader之前尝试运行以下命令:
export PYTHONPATH=$PYTHONPATH:.
这会将当前目录附加到您的PYTHONPATH
,并应使您的my_model
模块可见。由于我的内存很差,而且我总是忘记做这件事,所以我最终使用了一个简单的shell脚本,它在开始时包含了这个脚本,然后是bulkload命令本身
如果您在Windows上,您应该能够使用sys.path.append
修改路径。尚未对此进行测试,但您可以尝试将其添加到脚本中(请注意,这也适用于Linux):
导入系统
# ...
sys.path.append(“.”)
酷!投票!现在我得到了一个新的错误:
raise kinderor('kind\'%s\'%kind没有实现)google.appengine.ext.db.kinderor:kind'Article'没有实现
,所以现在它看到的是模块,而不是模块内的类——这实际上是模块内唯一的类。除此之外,其他所有文件都可以看到这个类。我需要bulkloader.yaml
?因为我不能自动生成一个,你有我可以使用的例子吗?我正在传递一个csv
文件。@kasavbere啊,你正在使用ndb
,一开始没有看到。实际上,您可以在回溯中看到错误的原因-调用的是db
API,而不是ndb
。我记得有人发布了一个类似的问题-如果我能找到它,我会将链接粘贴到这里(我认为它实际上是一个缺少的功能)。@kasavbere这里是活动的功能请求()。这句话来自于一个比我更可信的人的回答:)对不起,这个回答不令人满意。酷!投票!现在我得到了一个新的错误:raise kinderor('kind\'%s\'%kind没有实现)google.appengine.ext.db.kinderor:kind'Article'没有实现
,所以现在它看到的是模块,而不是模块内的类——这实际上是模块内唯一的类。除此之外,其他所有文件都可以看到这个类。我需要bulkloader.yaml
?因为我不能自动生成一个,你有我可以使用的例子吗?我正在传递一个csv
文件。@kasavbere啊,你正在使用ndb
,一开始没有看到。实际上,您可以在回溯中看到错误的原因-调用的是db
API,而不是ndb
。我记得有人发布了一个类似的问题-如果我能找到它,我会将链接粘贴到这里(我认为它实际上是一个缺少的功能)。@kasavbere这里是活动的功能请求()。这句话来自于一个比我更可信的人的回答:)很抱歉这个不令人满意的回答。我不喜欢投票否决那些好心帮助我的人。但下次你真的应该把这个问题读得更清楚些。我不喜欢投那些好心帮助别人的人的票。但是你下次应该把问题读得更清楚。我没有bulkloader.yaml
文件。本教程提到不能为localhost自动生成一个。如果我需要一个,是否有人有一个文件应该是什么样子的例子?我正在传递一个csv文件。我没有bulkloader.yaml
文件。本教程提到不能为localhost自动生成一个。如果我需要一个,是否有人有一个文件应该是什么样子的例子?我正在传递一个csv文件。