Sono nuovo per andare e lavorare su un codice di esempio che voglio localizzare.Come importare i pacchetti locali in go?
Nella dichiarazione originale main.go
importazione era:
import (
"log"
"net/http"
"github.com/foo/bar/myapp/common"
"github.com/foo/bar/myapp/routers"
)
ora ho common
e routers
pacchetto /home/me/go/src/myapp
Così ho trasformato l'istruzione import per:
import (
"log"
"net/http"
"./common"
"./routers"
)
Ma quando Corro go install myapp
Ottengo questi errori:
can't load package: /home/me/go/src/myapp/main.go:7:3: local import "./common" in non-local package
Inoltre, quando uso common
e routers
invece di ./common
e ./routers
nella dichiarazione di importazione, ottengo:
myapp/main.go:7:3: cannot find package "common" in any of:
/usr/local/go/src/common (from $GOROOT)
/home/me/go/src/common (from $GOPATH)
myapp/main.go:8:2: cannot find package "routers" in any of:
/usr/local/go/src/routers (from $GOROOT)
/home/me/go/src/routers (from $GOPATH)
Come posso risolvere questo problema?
Tutte le importazioni sono "locale" a prescindere dal percorso di importazione. Vedi ["Come scrivere Go Code"] (https://golang.org/doc/code.html) per una spiegazione dettagliata. – JimB
@JimB mettendo da parte i dibattiti filosofici, quello che mi interessa è come risolvere il problema di cui sopra. – Karlom
Non sto cercando di fare una dichiarazione filosofica, sto letteralmente dicendo che * tutte * le importazioni si verificano nel tuo filesystem locale; non c'è mai differenza se provengono da un repository remoto o no. Non tentare di utilizzare percorsi relativi (funzionano a volte, ma sono scoraggiati) e passano attraverso il documento "Come scrivere codice Go", in particolare la sezione su ["Organizzazione codice"] (https://golang.org/). doc/code.html # Organization). – JimB