
本文旨在解决 App Engine Go 应用编译时遇到的 “can't find import: appengine/users” 错误。该错误通常是由于使用了错误的导入路径引起的。下面将详细介绍正确的导入方式,并提供示例代码,帮助您快速解决此问题。
在 App Engine Go 应用中,访问用户 API 的正确导入路径是 appengine/user,而不是 appengine/users。 这是导致编译错误的主要原因。 请务必检查您的代码,并更正导入语句。
以下是一个使用用户 API 的示例代码:
import (
"fmt"
"net/http"
"appengine"
"appengine/user"
)
func welcome(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
u := user.Current(c)
if u == nil {
url, err := user.LoginURL(c, "/")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
fmt.Fprintf(w, `Sign in or register`, url)
return
}
url, err := user.LogoutURL(c, "/")
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
fmt.Fprintf(w, `Welcome, %s! (sign out)`, u.String(), url)
}
func init() {
http.HandleFunc("/", welcome)
}注意事项:
- 确保您的 import 语句中使用的是 "appengine/user"。
- App Engine 的 API 可能会随着时间推移而更新,因此建议参考 App Engine 官方文档 以获取最新的信息和示例。
- 如果在使用 user.LoginURL 或 user.LogoutURL 时出现错误,务必处理错误情况,例如使用 http.Error 返回错误信息。
- 在部署到 App Engine 之前,请确保您的代码在本地开发服务器上可以正常运行。
总结:
解决 App Engine Go 应用编译错误的关键在于使用正确的导入路径。 通过将 appengine/users 更改为 appengine/user,您可以解决该问题。 此外,请始终参考官方文档,了解最新的 API 信息,确保您的代码与 App Engine 环境兼容。










