Rusfearuth
Rusfearuth

Reputation: 3261

How to import local Go package in GAE

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.

Upvotes: 5

Views: 8727

Answers (2)

Darshan Rivka Whittle
Darshan Rivka Whittle

Reputation: 34031

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"
)

Upvotes: 6

dupoxy
dupoxy

Reputation: 34

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

Upvotes: 1

Related Questions