如何用Python将数据加载到本地开发服务器?
我知道这个问题在GAE的帮助网站上已经讲得很清楚了。不过对我来说,这个方法并不好用。我对Python还不是很熟悉,但我知道导入模块是怎么回事。实体模块和加载器在同一个文件夹里。那么GAE的脚本到底在干嘛呢?
这是我的加载器:
from google.appengine.ext import db
from google.appengine.tools import bulkloader
import entities
class CardLoader(bulkloader.Loader):
def __init__(self):
bulkloader.Loader.__init__(self, 'Card',
[('english', str),
('translation', str)
])
loaders = [CardLoader]
这里是一个叫做entities.py的文件里的内容:
from google.appengine.ext import db
class Card(db.Model):
english = db.StringProperty(required=True)
translation = db.StringProperty(required=True)
这是.csv文件中的一部分内容:
"cardId","english","translation"
"3994","face","la cara"
"4027","art","el arte"
我使用的Python版本:
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
这是我在Windows上输入的命令:
python "c:\Program Files\Google\google_appengine\appcfg.py" upload_data --config_file=card_loader.py --url http://localhost:8080/remote_api --filename=card_data.csv --kind=Card
这是输出的结果:
Uploading data records.
[INFO ] Logging to bulkloader-log-20110723.183520
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 250000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 20/second
[INFO ] Batch Size: 10
Please enter login credentials for localhost:8080
Email: admin
Password for admin:
Traceback (most recent call last):
File "c:\Program Files\Google\google_appengine\appcfg.py", line 76, in <module
>
run_file(__file__, globals())
File "c:\Program Files\Google\google_appengine\appcfg.py", line 72, in run_fil
e
execfile(script_path, globals_)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 3708, in <module>
main(sys.argv)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 3699, in main
result = AppCfgApp(argv).Run()
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 2345, in Run
self.action(self)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 3484, in __call__
return method()
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 3311, in PerformUpload
run_fn(args)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\appcfg.p
y", line 3202, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
File "c:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 4369, in Run
return _PerformBulkload(arg_dict)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 4180, in _PerformBulkload
LoadConfig(config_file)
File "c:\Program Files\Google\google_appengine\google\appengine\tools\bulkload
er.py", line 3844, in LoadConfig
('', 'r', imp.PY_SOURCE))
File "card_loader.py", line 3, in <module>
import entities
ImportError: No module named entities
1 个回答
0
这个错误信息告诉我们发生了一个ImportError
:找不到entities
这个模块。你的模型是在这个模块里吗?如果是的话,你需要确保这个模块可以被找到(如果需要的话,可以把它的目录添加到sys.path
里)。