我已经按照https://cloud.google.com/appengine/docs/go/#creating_a_simple_http_handler关于如何开始使用Go的所有步骤进行了操作,但在尝试运行helloworld应用时,我遇到了一个问题。
我收到以下错误:
C:\Users\kirill\Desktop\go_appengine>goapp serve myapp
Traceback (most recent call last):
File "C:\Users\kirill\Desktop\go_appengine\\dev_appserver.py", line 83, in <module>
_run_file(__file__, globals())
File "C:\Users\kirill\Desktop\go_appengine\\dev_appserver.py", line 79, in _run_file
execfile(_PATHS.script_file(script_name), globals_)
NameError: name 'execfile' is not defined
error while running dev_appserver.py: exit status 1
答案 0 :(得分:3)
Go AppEngine SDK需要Python 2.7(不能使用Python 3.x)。在我看来你的SDK使用的是Python 3.X,或者根本没有Python(在PATH
中)。
首先确保将Python 2.7添加到PATH中,以便goapp
使用。你可以在这里得到它:Python 2.7.11。对于Go AppEngine SDK,一个小巧的可移植Python也足够了,您可以从这里获取它:Single-File Stand-alone Python 2.7.9 for Windows。下载pyexe-2.7.9.10.zip并解压缩。它只是一个10 MB的单个文件,将其重命名为python.exe
并将其添加到PATH
。
另外,在我看来你是从错误的文件夹开始你的Hello world应用程序:你站在SDK的文件夹中,你想要启动它指定你的应用程序在myapp
子文件夹中在SDK中,这不太可能。
导航到您应用所在的文件夹(app.yaml
必须在那里)。在该文件夹中执行命令
goapp serve
这将启动应用程序位于当前文件夹中。要实现此目的,必须将goapp
命令(Windows上的goapp.bat
)添加到PATH
。
如果您不能或不想将go_appengine
文件夹添加到PATH
,仍然会导航到包含您要启动的应用的文件夹,但提供goapp的路径,例如
C:\Users\kirill\Desktop\go_appengine\goapp serve