@PatriotSY

Почему не импортируются модули?

Не понимаю, как правильно импортировать модули. Вот демо накидал:
main.go в корне:
package main

import "./client"

func main() {
	client.TestFunc("Test")
}


И ./client/client.go :
package client

import (
	"fmt"
	"github.com/gorilla/websocket"
)

type Client struct {
	Name string
	conn *websocket.Conn
}

func TestFunc(name string) {
	c := &Client{Name: name}
	fmt.Printf("%s", c.Name)
}


Файл go.mod:
module test
go 1.14
require github.com/gorilla/websocket v1.4.2

Запускаю: go run main.go и получаю ошибку: "client/client.go:5:2: cannot find package", т.е. он не видит github.com/gorilla/websocket в импортах. Что я делаю не так? Или файл go.mod должен быть для каждого пакета? Я package использую для логического разделения типа неймспейсов, что бы функции к одному "классу" относились. А go.mod думал что будет как менеджер пакетов для всего приложения
  • Вопрос задан
  • 1563 просмотра
Решения вопроса 1
import "./client"
Так делать нельзя, путь импорта всегда абсолютный. Если модуль вашего приложения в go.mod называется test, то импорт будет test/client
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@cython
В папке с go.mod запускаете go build. Также перед использованием пакета, нужно загрузить его через go get
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы