2015-03-18 2 views
0

Я пытаюсь использовать импорт пакета для внутреннего использования, но у меня возникли некоторые проблемы.
Моя структура каталогов выглядит следующим образом:Golang Importing Issue

app/ 
    model/ 
     file1.go 
     file2.go 
     ... 
    main.go 

Когда я пытаюсь построить программу, я получаю ошибку, которая выглядит примерно так:

/usr/local/go/src/pkg/model (from $GOROOT) 

Я хочу, чтобы быть в состоянии назвать модель программы в любой из моих других программ в приложении, просто используя:

import "app/model" 

Каковы мои варианты, когда дело доходит до этого?

+1

См. Https://golang.org/doc/code.html#GOPATH и https://golang.org/cmd/go/#hdr-GOPATH_environment_variable –

ответ

2

Вы импортируете с GOPATH уровень .. все ваши пакеты должны жить там.

Например, предполагая, что приложение находится здесь:

$GOPATH/src/dtrinh100/app/ 

..и ваш пакет, который вы хотите импортировать здесь:

$GOPATH/src/github.com/other/package 

Ваш импорт будет:

import "github.com/other/package" 

Вы должны просмотреть литературу вокруг того, что такое переменная окружения GOPATH. Когда вы начинаете Go, важно понимать его цель, и сначала вы должны разместить все свои проекты/пакеты внутри GOPATH.

0

При импорте пользовательского пакета Go ищет свое определение в каждой рабочей области, указанной в переменной окружения GOPATH. Ваш собственный пакет должен быть определен в подкаталоге src.

Если вы сохраняете свой код в исходном репозитории где-то, тогда вы должны использовать корень этого исходного репозитория в качестве базового пути. Например, если у вас есть учетная запись GitHub на github.com/user, это должен быть ваш базовый путь.

Обратите внимание, что вам не нужно публиковать свой код в удаленном репозитории, прежде чем вы сможете его создать. Это просто хорошая привычка организовывать ваш код, как будто вы опубликуете его когда-нибудь. На практике вы можете выбрать любое произвольное имя пути, если оно уникально для стандартной библиотеки и большей экосистемы Go.

Вы должны использовать github.com/user как наш базовый путь. Создайте папку внутри вашего рабочего пространства, в котором, чтобы сохранить исходный код:

$ mkdir -p $GOPATH/src/github.com/user 

Вы можете посмотреть на How to Write Go Code для более подробной информации.