Как исправить ошибку сборки Go "не удается загрузить пакет" с модулями Go?
Я создаю новый проект, используя модули Go с этим руководством, а затем пытаюсь его построить.
Модуль находится в папке за пределами $GOPATH со следующей структурой:
example.com
├── my-project
├── ├── main
├── ├── ├── main.go
├── ├── go.mod
Я бегал go mod init example.com/my-project
в каталоге example.com/my-project
и создал файл go.mod, показанный выше.
main.go
имеет основное содержание:
package main
import (
"fmt"
)
func main(){
fmt.Println("Hello, world!")
}
После попытки запустить go build
в каталоге example.com/my-project
Я получаю следующее сообщение об ошибке:
can't load package: package example.com/my-project: unknown import path "example.com/my-project": cannot find module providing package example.com/my-project
,
Я также пытался бежать go build
в каталоге /
, вне example.com/my-project
, и я получаю аналогичные результаты с ошибками:
can't load package: package .: no Go files in ...
Возможно, я неправильно понял некоторые основные вещи, так что спасибо за ваше терпение и любую помощь, которую вы можете оказать.
2 ответа
Нет необходимости в директории main, просто переместите ваш main.go и go.mod на example.com/my-project, и он будет работать.
Корень проекта должен выглядеть так:
.
├── go.mod
└── main.go
В моем случае это было то, что переменные GOMOD и GOWORK принимали другие значения, отличные от проекта, я решил это, выполнив командуgo env
и проверка значений этих переменных и удаление файлов по этому адресу.
Затем я удалилgo.mod
иgo.sum
файл из проекта и снова запустил следующие команды:
go mod init projectName
go mod tidy
go run ./...
И это сработало отлично.