Почему возникает ошибка «main.go:3:8: package greeting is not in GOROOT (/usr/local/go/src/greeting)»?

Читаю книгу "Head First. Изучаем Go", глава 4 "Пакеты". Повторяю за автором:
1. Создаю файловую структуру:
go
└── src
    ├── greeting
    │   └── greeting.go
    └── hi
        └── main.go

2. Записываю в файл greeting.go код:
package greeting

import "fmt"

func Hello() {
      fmt.Println("Hello!")
}

func Hi() {
      fmt.Println("Hi!")
}

3. Записываю в файл main.go код:
package main

import "greeting"

func main() {
      greeting.Hello()
      greeting.Hi()
}

4. Из каталога ~/go/src/hi запускаю программу командой go run main.go.
Несмотря на то, что у автора программа работает и выводит:
Hello!
Hi!

У меня возникает ошибка:
main.go:3:8: package greeting is not in GOROOT (/usr/local/go/src/greeting)

Подскажите, почему так происходит и как это можно исправить?
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 1
Скорее всего зайди в go.mode там у тебя будет module "твой пакет", возьми название твоего пакета и импортируй greeting относительно этого пакета, то есть
import (
"fmt"
"название пакета/greeting"
)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы