Go mod "не могу найти пакет", когда я использую внешний пакет в другом файле

Когда я использую мод go и у меня есть только один файл .go, все в порядке, и go mod могу загрузить внешний пакет и использовать его, но когда я использую внешний пакет в другом файле (не в файле main.go), я получаю эту ошибку (когда беги go run main.go)

test/test.go:4:2: cannot find package

Моя структура проекта выглядит следующим образом:

├── go.mod
├── go.sum
├── main.go
└── test
    └── test.go

И это мои файлы:

main.go

package main

import (
    "./test"
)

func main() {
    test.Hello()
}

тест.го

package test

import (
    "github.com/mehrdadep/tgomod"
)

func Hello() {
    tgomod.Print()
}

go.mod

module test

go 1.15

require github.com/mehrdadep/tgomod v1.0.1

go.sum

github.com/mehrdadep/tgomod v1.0.1 h1:4lxx7JE0pySHLbH52sidkkKBjJQFC8ZZej3zEX/RTWc=
github.com/mehrdadep/tgomod v1.0.1/go.mod h1:YIkzdF7Sf9nd+eC0ySxL+gGbsew7LvUh9vP3p7yzTi4=

Спасибо

Я предлагаю вам прочитать "Как писать код Go", так как это официальная документация, в которой описывается, как это сделать правильно.

JimB 09.12.2020 21:39
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
3
1
356
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

я меняю

import (
    "./test"
)

к

import (
    "test/test"
)

И это работает
Итак, я обнаружил, что ваш путь должен основываться на имени вашего модуля, а затем добавить к нему ваш каталог
В test/test мой первый тест — это имя моего модуля, а второй — имя моего каталога.

Другие вопросы по теме