本地模块中的包不在GOROOT中,适用于Go1.19。
创始人
2024-11-29 22:01:18
0

在 Golang 1.19 中,本地模块不允许使用 GOROOT 中不存在的包。如果您的代码使用了诸如 fmtnet/http 等标准库中的包,但却收到类似“Package is not in GOROOT” 的错误消息,则说明 Go 1.19 以后的版本不再允许您在本地模块中使用 GOROOT 之外的包。

要解决这个问题,您可以将需要的包放到 vendor 目录中,或者将它们作为本地模块的一部分下载,并指定 module 名称或替代名称。

下面是两个示例:

  1. 将需要的包放入 vendor 目录

在本地模块的根目录下创建一个名为 vendor 的目录,并将所需的包放入其中。然后在代码中添加一个 import 语句,指向这些包,就可以将这些包包含在您的应用程序中了。例如:

import (
    "log"
    "github.com/gin-gonic/gin"
)

func main() {
    router := gin.Default()
    log.Fatal(router.Run(":8080"))
}

这将在 vendor 目录中查找 github.com/gin-gonic/gin 包,而不是在 GOROOT 中查找。

  1. 使用本地模块

如果您希望将包作为本地模块的一部分来下载,那么可以在您的代码中指定该 module。例如:

module myapp

go 1.19

require (
    github.com/gin-gonic/gin v1.6.3
)

在这个例子中,github.com/gin-gonic/gin 包的版本 v1.6.3 被作为本地模块的一部分下载,并与您的应用程序一起构

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...