Не импортируются пакеты Golang
Пишу программу на golang и возникла проблема что при правильных путях к пакетам появляется ошибка package ... is not in std
Имею такую программу
package statistic
import (
"context"
"statistic/internal/config"
"statistic/internal/postgres"
"log/slog"
"os"
)
func main() {
log := slog.New(
slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelDebug}),
)
cfg := config.MustLoadByPath("./config/config.yaml")
ctx := context.Background()
db, err := postgres.NewStorageWithPool(ctx, cfg.Postgres, log)
if err != nil {
log.Error("failed init db " + err.Error())
return
}
if err = db.Pool.Ping(ctx); err == nil {
log.Info("db connected suc")
} else {
log.Info("db connected failed " + err.Error())
}
}
в go mod название statistic, даже в самой IDE ничего красным не подчёркивает, а при клике + ctrl перекидывает в нужный файл, но при запуске с go run cmd/main.go пишет
cmd\main.go:5:2: package statistic/internal/config is not in std (C:\Program Files\Go\src\statistic\internal\config) cmd\main.go:6:2: package statistic/internal/postgres is not in std (C:\Program Files\Go\src\statistic\internal\postgres)
Ради интереса попробовал сделать проект с пустой структурой в internal/postgres и импортировать его в main.go main.go Но при запуске всё та же ошибка
cmd\main.go:3:8: package dummy/internal is not in std (C:\Program Files\Go\src\dummy\internal)
Может это быть связано с версией golang? у меня go1.24.2 windows/amd64
Ответы (1 шт):
Что-то вы нам недоговариваете. Я попробовал ваш main.go с заглушками на месте функций из statistic/internal, и у меня всё скомпилировалось. Но не запустилось: package command-line-arguments is not a main package. Собственно, так и ожидалось - пакеты с функцией main должны тоже называться main.
Если в main.go поменять на package main, то всё благополучно запускается:
$ go run cmd/main.go
time=2025-04-18T09:39:05.399+03:00 level=INFO msg="db connected suc"
У меня go version go1.23.6 linux/amd64, IDE - VS Code. Файлы из игрушечного проекта здесь: https://pastebin.com/L0VzCiWc

