簡體   English   中英

Google App Engine和上載腳本

[英]Google App Engine and Upload script

我目前正在使用Android開發套件隨附的Eclipse,並遵循GAE教程:

https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial

我從來沒有任何服務器或后端經驗,我希望使用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系統上進行了以下操作

  • 下載適用於Python的google_appengine https://developers.google.com/appengine/downloads
  • 將文件夾解壓縮到某處
  • 將places.csv和bulkloader.yaml從MobileAssistant-Data復制到文件夾
  • 在該文件夾中創建文件upload_data.sh文件
  • 編寫以下兩行並保存文件

     #!/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM