5 回答
TA贡献1815条经验 获得超13个赞
该go.mod
文件应位于项目的根目录下(在本例中为my-api-server/go.mod
)。
模块路径的第一部分应该是域/路径。例如,完整路径可能是github.com/your-github-username/my-api-server
. 您看到的错误是因为第一部分不是域(带有句点)。您不必发布模块来开发它,但您需要使用适当的域名。
一旦有了模块路径,就可以使用完整模块路径+“/”+包的相对路径来导入该模块中包含的包。例如,
import "github.com/your-github-username/my-api-server/my-utils/uuid"
由于main.go
和uuid
包含在同一模块中,因此您不需要require
在go.mod
文件中声明即可使用该uuid
包。您可以像任何其他包一样导入它并且它会起作用。
我建议使用go build
并运行生成的可执行文件,而不是使用go run
它来确保包含构建过程中所需的所有文件。
TA贡献2011条经验 获得超2个赞
检查 main.go 文件上的导入路径。
我必须调用整个导入路径:
github.com/[username]/[project-name]/views
代替:
[project-name]/views
让它在我这边发挥作用。
TA贡献1795条经验 获得超7个赞
如果您尝试使用全局包(非标准),则包名称的第一部分应该有一个点('.')。可能需要点('.'),就像在任何 URL 中一样,在本例中为 github.com...,它将其标记为远程包。
如果你想使用本地包,那么你需要使用 go 模块,那么第一部分将是你的 go 模块的名称(你在初始化 go 模块时使用的名称)。
示例(根据问题):转到项目根文件夹(在本例中../src$
)并运行以下命令
go mod init myapiserver
这将创建一个go.mod和go.sum文件。
然后要导入uuid,您可以简单地myapiserver/my-utils/uuid
在导入中使用
import "myapiserver/my-utils/uuid"
那么所有公共函数(以大写字母开头)都uuid.go
可以在当前文件中访问
TA贡献1852条经验 获得超7个赞
升级go版本到最新或1.16.1以上。
go version >=1.16.1 (required)
对于苹果机 -
brew update brew upgrade golang
对于 linux - 删除现有的 go,然后安装最新的。
这对我有用。
- 5 回答
- 0 关注
- 186 浏览
添加回答
举报