我已按照 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
最佳答案
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
关于google-app-engine - 获取错误 "name ' execfile' 未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35619557/