@Leksisi

Golang. Самописный пакет не видим из основного модуля?

Начал изучать Go и никак не могу победить простую проблему.

Go 1.16

В соответствии с примерами делаю так:
1. Устанавливаю GOPATH = c:\projects\go
2. В папке c:\projects\go создаю подпапку src
3. В папке scr создаю директорию mytest и папки, получается такая структура:

src\mytest\paсkage1
src\mytest\cmd

4. В paсkage1 создаю файл package1.go:

package paсkage1

// RetVal test function
func RetVal() string {
	return "passed"
}


5. В cmd создаю файл main.go
package main

import (
	"fmt"
	"mytest/package1"
)

func main() {
	fmt.Println("Test of package:")
	fmt.Println(package1.RetVal())
}


При попытке выполнить код командой go run main.go, чтобы я не делал получаю ошибку:

main.go:5:2: package mytest/package1 is not in GOROOT (c:\go\src\mytest\paсkage1)


Почему main.go не видит этот пакет? В роликах на ютубе у людей все работает.
Делаю 1 в 1 как у них - не работает.
Копирую примеры из интернета - не работает.
Не могу понять в чем ошибка.

Работает только если скопировать в системную папку c:\go\src\mytest\paсkage1
Не хочется засорять системную папку и плюс тогда возникает вопрос как добавлять такой код в git.
  • Вопрос задан
  • 505 просмотров
Решения вопроса 1
Или возьмите старую версию Go, как у "ютуберов", или же, наконец, начните использовать go modules.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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