gitmek özel içe aktarılabilir:İşte benim ana dosyası (server.go) 'dir modülünü
package main
import (
"net/http"
"routes"
)
func main() {
http.HandleFunc("/", routes.Handler)
http.ListenAndServe(":8000", nil)
}
Benim yolları modül aynı dizinde: Ben bu hatayı alıyorum go run server.go
ben çalıştırdığınızda
package routes
func Handler(w http.ResponseWriter, r *http.Request) {
// stuff...
}
: benim server.go
dosyaya routes.go
kod yerleştirdiğinizde
server.go:6:5: cannot find package "routes" in any of:
/usr/local/Cellar/go/1.6/libexec/src/routes (from $GOROOT)
~/server/src/routes (from $GOPATH)
, bu r iyi değil. Modülü alamıyorum. Geçerli dizime $GOPATH
değişkenini ayarlamayı denedim, proje dizinimi yeniden düzenleyerek bir here taklit etmeyi denedim. Seçeneklerin tükeniyor. Bu geniş çapta benimsenen bir dilin, hemen hemen her dilde nispeten kolay olan bir şeyin nasıl yapıldığına dair zayıf bir dokümantasyona sahip olması gariptir. Lütfen yanlış yaptığımı bulmama yardım et.
GÜNCELLEME:
Bu go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/server"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.6/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.6/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
'route' adlı bir paket' ~/server/src/route' dizininde olmalıdır. Tek bir dizinde birden çok paketiniz olamaz. – JimB
Ayrıca şunu da okuyun: https://golang.org/doc/code.html#Yükleme yollarındaki iş akışları burada (golang.org -> Docs aracılığıyla) ele alınmıştır. – elithrar
Bu bana saçma geliyor. Neden gitmek, keyfi bir proje yapısını zorluyor? – dopatraman