[英]Google App Engine and Upload script
我目前正在使用Android開發套件隨附的Eclipse,並遵循GAE教程:
我從來沒有任何服務器或后端經驗,我希望使用App Engine的功能制作一個Android應用程序。
在完成本教程之前,一切似乎都進行得很順利,直到我進入需要“創建上傳腳本”的那一部分為止。 我不知道我應該怎么做,讀得越多,我就越困惑。
該教程說過“創建目錄並使其成為當前目錄”,然后創建一個腳本文件,但是我是否想創建新目錄並將其放在包資源管理器中的Eclipse的AppEngine項目中或其他地方? 我真的不知道所有這些如何一起工作。
我剛剛為Eclipse安裝了python 2.7,並確保PyDev解釋器指向python.exe,但除此之外,我真的不知道從那以后該去哪里。
EDIT1:我正在使用Cygwin並運行“ sh upload_data.shPlace”。 當我運行它時,出現以下錯誤:
C:\Python27\python.exe: can't open file '/cygdrive/c/Program Files (x86)/Google/google_appengine/appcfg.py': [Errno 2] No such file or directory
我嘗試將“ C:\\ Program Files(x86)\\ Google \\ google_appengine \\ appcfg.py”添加到upload.sh文件中。 看起來如下:
C:\Program Files (x86)\Google\google_appengine\appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e myemail@mail.com
發生以下錯誤:
upload_data.sh: line 2: syntax error near unexpected token `('
upload_data.sh: line 2: `/cygdrive/c/Program Files (x86)/Google/google_appengine\appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e mymail@mail.com'
EDIT2:好的,我在'('之前添加了'\\',並在空格中也使用了'\\'。以下是目前upload.sh中的代碼。
C:\Program\Files\(x86\)\Google\google_appengine\appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e mymail@mail.com
然后出現以下錯誤,並產生以下錯誤:
upload_data.sh: line 2: C:ProgramFiles(x86)Googlegoogle_appengineappcfg.py: command not found
我去了谷歌應用程序引擎目錄,appcfg.py就在那里。 另外,我不太確定我是否實際使用了正確的命令。 我用了:
sh upload.data.sh(箭頭括號)places.csv(箭頭括號)Place
腳本或其他內容是否需要放置在特定目錄中? 我嘗試將appcfg.py文件放在我的腳本目錄中,在該目錄中,我僅表示[Errno 2]沒有此類文件或目錄,保存了upload_data.sh文件。 然后,我嘗試將文件,upload.data,places.csv和bulkloader.yaml放入存儲了appcfg.py的Google / google_appengine目錄中,然后它將返回“權限被拒絕”錯誤。 我還將python27重新安裝到“ google_appengine”文件中。 我嘗試僅在Cygwin上運行“ appcfg.py”,然后返回[Err2]沒有此類文件或目錄。
然后,我嘗試在Windows命令提示符下運行運行,編寫方式為:
appcfg.py upload_data --config_file
C:\Users\User\Documents\AndroidApps\Scripts\bulkloader.yaml--url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e mymail@mail.com
返回以下錯誤:
11:09 PM Uploading data records.
Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 126, in
<module>
run_file(__file__, globals())
File "C:\Program Files (x86)\Google\google_appengine\appcfg.py", line 122, in
run_file
execfile(_PATHS.script_file(script_name), globals_)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 4934, in <module>
main(sys.argv)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 4925, in main
result = AppCfgApp(argv).Run()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 2648, in Run
self.action(self)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 4605, in __call__
return method()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 4417, in PerformUpload
run_fn(args)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\ap
pcfg.py", line 4298, in RunBulkloader
sys.exit(bulkloader.Run(arg_dict))
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\bu
lkloader.py", line 4406, in Run
SetupLogging(arg_dict)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\bu
lkloader.py", line 4362, in SetupLogging
file_handler = logging.FileHandler(log_file, 'w')
File "C:\Program Files (x86)\Google\google_appengine\lib\logging\__init__.py",
line 889, in __init__
StreamHandler.__init__(self, self._open())
File "C:\Program Files (x86)\Google\google_appengine\lib\logging\__init__.py",
line 908, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: 'C:\\Program Files (x86)\\Google\\google_
appengine\\bulkloader-log-20140314.230944'
看來我根本無法在Cygwin中使用appcfg.py。 我已經被困了將近2天了。
謝謝。
鏈接的教程沒有這么說,但是“創建上傳腳本”部分似乎僅限於將數據從.csv文件上傳到開發服務器。 我的解釋是該目錄可以在任何地方,並且與本教程中的其他項目無關。
當教程中顯示“創建新目錄並使其成為當前目錄”時,這意味着在文本控制台中打開命令外殼。 本教程假定您使用的是Unix類型的系統,而不是Windows。 假設目錄將被稱為mobile-assistant-upload,並且您使用vi作為文本編輯器,那么您的shell命令將是:
mkdir mobile-assistant-data
cd mobile-assistant-data
vi upload_data.sh
請注意,從appcfg.py到電子郵件地址的所有文本都必須全部排成一行,並且您應該使用自己的電子郵件地址。
編輯:我認為upload_data.sh的第2行應該看起來更像:
/cygdrive/c/Program\ Files\ \(x86\)/Google/google_appengine\appcfg.py --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e mymail@mail.com
和運行它的命令行:
sh upload.data.sh places.csv Place
沒有箭頭括號,它們只是文檔。 當然,這假定places.csv在當前目錄中。
我終於通過在管理員模式下運行Windows命令提示符來使它正常工作。 然后,我導航到google_appengine目錄。 然后,我在Windows cmd中使用了以下命令:
appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename places.csv --kind=Place -e mymail@mail.com
在運行命令之前,我還將bulkloader.yaml和places.csv文件放置在google_appengine目錄中。 只需按回車鍵,便會要求輸入密碼,然后文件應上傳到本地主機。
遇到同樣的問題。
該教程在這一點上寫得不太好。 我在Ubuntu系統上進行了以下操作
編寫以下兩行並保存文件
#!/bin/sh ./appcfg.py upload_data --config_file bulkloader.yaml --url=http://localhost:8888/remote_api --filename $1 --kind=$2 -e nobody@nowhere.com
使文件可執行chmod a+x upload_data.sh
如果一切都不好,請運行:
<google_appengine folder>./upload_data.sh places.csv Place
應該輸出類似:
12:55 PM Uploading data records.
[INFO ] Logging to bulkloader-log-20140918.125544
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 250000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 20/second
[INFO ] Batch Size: 10
Password for nobody@nowhere.com:
[INFO ] Opening database: bulkloader-progress-20140918.125544.sql3
[INFO ] Connecting to localhost:8888/remote_api
[INFO ] Starting import; maximum 10 entities per post
.
[INFO ] 2 entities total, 0 previously transferred
[INFO ] 2 entities (1696 bytes) transferred in 58.8 seconds
[INFO ] All entities successfully transferred
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.