2012-05-15 9 views
11

¿Dónde debería colocar mi paquete para que pueda ser importado por otro paquete?¿Cómo hago para ir a buscar mi paquete?

$ tree 
. 
├── main.go 
└── src 
    └── test.go 

1 directory, 2 files 

$ cat src/test.go 
package test 

$ cat main.go 
package main 

import "test" 

$ go build main.go 
main.go:3:8: import "test": cannot find package 
+0

¿Cuál es el valor de GOPATH? –

+0

GOPATH no está configurado. –

Respuesta

8

Configure su GOPATH. Poner su fuente (s) en el paquete foo GOPATH/src/opcional-lo/foo/*. Ir y utilizarlo en código como

import "optional-whatever/foo" 

Usted No es necesario instalar de forma explícita foo, la herramienta de ir es una herramienta de compilación, lo hará automágicamente para usted siempre que sea necesario.

+2

Para aclarar: el paquete será un directorio (por ejemplo, 'foo'). Importará la carpeta como el módulo, no los archivos fuente individuales. – VOIDHand

8

Hay algunas cosas que deben suceder. Debe instalar el paquete de "prueba" en primer lugar:

$ export GOPATH=$(pwd) # Assumes a bourne shell (not csh) 
$ mkdir src/test 
$ mv src/test.go src/test/test.go 
$ mkdir pkg     # go install will put packages here 
$ go install test   # build the package and put it in $GOPATH/pkg 
$ go build main.go 

en cuenta que no es necesario crear PKG, como go install lo hará por ti. Una vez que haya instalado el paquete de prueba (generalmente un nombre incorrecto, BTW) go build main.go ahora debería dar diferentes errores (por ejemplo, "importado y no usado")

+0

Ya veo, gracias William. –

+0

Explicación más limpia para un principiante hasta la fecha. – gmile

-4

tal vez, puede poner el archivo test.go en el mismo directorio con el main.go y en test.go, se usa algo como esto:

import "./test" 
Cuestiones relacionadas