How to import local Go package in GAE

2020-07-11 09:45发布

问题:

How to import local packages in Golang + GAE?

I wanna something like this:

app/
-app.yaml
-/my_app
--my_app.go
--/package1
---package1.go

Listing of my_app.go:

package my_app

import (
  "http"
  "./package1"
)

func init() {
  http.HandleFunc("/", package1.index)
}

Listing of package1.go:

package package1

import (
  "http"
  "fmt"
)

func index (w http.ResponseWriter, r * http.Request) {
  fmt.Fprint(w, "I'm index page =) ")
}

I this case I have an error like:

/path/to/project/my_app/my_app.go:5: can't find import: ./package1
2011/11/03 10:50:51 go-app-builder: Failed building app: failed running 6g: exit status 1

Thanks for help.

回答1:

You either need to link or copy the packages to your application directory. The path relative to the root of the application directory should match the import path. To use package1, you should configure your app directory to look like this:

app.yaml
yourapp/yourapp.go
package1/package1.go

from https://groups.google.com/d/msg/golang-nuts/coEvrWIJGTs/75GzcefKVcIJ



回答2:

As noted in the comments to dupoxy's answer, the way to import a local package in the given situation is to import as "my_app/package1":

import (
    "http"
    "my_app/package1"
)