2016-04-01 8 views
-1

Ich habe die folgende Dateistruktur:Meine Hauptdatei kann nicht eine andere Datei finde ich erstellt, dass ich in die Hauptdatei importiert

- project/ 
    - src/ 
    - main/ 
     - main.go 
    - viewmodels/ 
     - home.go 
    - public/ 

Mein Projekt gefunden wird: ~/go/src/

Wenn ich versuche, meine Hauptdatei wirft sie den Fehler laufen:

src/main/main.go:10:2: cannot find package "viewmodels" in any of: 
    /usr/local/Cellar/go/1.5.3/libexec/src/viewmodels (from $GOROOT) 
    /Users/nicholasrucci/go/src/viewmodels (from $GOPATH) 

es sieht aus wie Haupt sucht package viewmodels an der falschen Stelle. Von meinem Verständnis, nach dem Lesen How to Write Go Code und die vorherigen Programme würde gut laufen, meine Konfiguration ist richtig eingerichtet, aber offensichtlich ist etwas nicht in Ordnung.

Go verwandte Konfigurationen von .zshrc:

export GOPATH=$HOME/go 
export PATH=$PATH:/usr/local/opt/go/libexec/bin 
export PATH=$PATH:$GOPATH/bin 
export PATH=$PATH:/usr/local/go/bin 

Snippet main.go:

package main 

import (
    "bufio" 
    "log" 
    "net/http" 
    "os" 
    "strings" 
    "text/template" 
    "viewmodels" 
) 

Snippet home.go:

package viewmodels 

import() 

Jede Richtung für das, was vor sich geht, und wie ich dieses Problem beheben kann, wäre großartig. Vielen Dank.

Antwort

1

Sie sollten die vollständigen Paketnamen für den Import Pfad verwenden: "project/src/viewmodels" in diesem Fall unter der Annahme Projekt unter /Users/nicholasrucci/go/src ist, aber ich würde anders Projektordnerstruktur (kein src Ordner zum Beispiel)

Alternativ können Sie einstellen Dein GOPATH zum vollqualifizierten Pfad zu deinem Projektordner, der dann dein main.go zu import "viewmodels" wie du hast.

+0

Das hat definitiv den Trick gemacht. Mir war auch nicht bewusst, dass pro Projekt ein GOPATH gesetzt werden konnte. Vielen Dank. –

+1

Denken Sie daran, dass, wenn Sie es so machen, alle Ihre 'go get' Abhängigkeiten unter Ihrem Projekt/src-Ordner installiert werden. –

0

Dies funktioniert für mich ganz gut:

src/main/main.go

package main 

import (
    "viewmodels" 
) 

func main() { 
    viewmodels.Something() 
} 

src/Viewmodels/home.go

package viewmodels 

import() 

func Something() { 

} 

Ich bin raten es ist Ihre env-Variablen.

Verwandte Themen