go run在相对子模块上出现错误“找不到包”

go run在相对子模块上出现错误“找不到包”,go,go-modules,Go,Go Modules,我有下面的dir结构 ~/test | lala - lala.go - main.go 内容包括: main.go: package main import ( "fmt" "./lala" _ "github.com/lib/pq" ) func main() { fmt.Println(lala.asd) } 拉拉,走吧: package lala import ( _ "github.co

我有下面的dir结构

~/test
 | lala
  - lala.go
 - main.go
内容包括:

main.go:

package main

import (
        "fmt"

        "./lala"
        _ "github.com/lib/pq"
)

func main() {
        fmt.Println(lala.asd)
}
拉拉,走吧:

package lala

import (
        _ "github.com/lib/pq"

        "github.com/gorilla/securecookie"
)

func asd() string {
        return string(securecookie.GenerateRandomKey(32))
}
然后我执行:

~/test$ go mod init asdasd.com/asdasd
~/test$ go mod tidy
~/test$ go run main.go
但我明白了

lala/lala.go:6:2:找不到包

该行包含securecookie,这是一个远程路径。
我在lala目录中尝试了
go mod init&&go mod tidy
,但错误相同。

在导入中不要使用相对路径。导入路径应以项目目录(src文件夹下的目录)开始

改变这个

import  "./lala"


不要使用相对导入。非常有用。那么解是什么呢?相对路径的对立面是绝对路径。请参考如何编写Go代码。我不使用GOROOT来管理这个项目。事实上,我正试图从GOROOT中脱离出来,以防止我不得不在导入时使用完整的url路径。我原以为模块会有帮助,但很明显,这些模块和GOPATH一样容易损坏。@AxelBayerl,GOROOT从未被用于管理项目。“如何编写Go代码”将一步一步地引导您完成所需内容。
import  "asdasd.com/asdasd/lala"