Golang中无法导入github.com/u-root/u-root/pkg/curl的问题
Golang中无法导入github.com/u-root/u-root/pkg/curl的问题 你好
尝试导入以下内容时,我在 github 的模块上收到错误。许多包含 github 的模块也存在同样的问题。
import (
"math"
"github.com/u-root/u-root/pkg/curl"
)
无法导入 github.com/u-root/u-root/pkg/curl (在 GOROOT 中找不到包 “github.com/u-root/u-root/pkg/curl”) 编译器损坏的导入
我已经尝试了多种修复方法,但仍然无法使其正常工作。我没有设置 go.mod 文件。
当前 GO 环境变量
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\matt\AppData\Local\go-build
set GOENV=C:\Users\matt\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\matt\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\matt\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.23.1
set GODEBUG=
set GOTELEMETRY=local
set GOTELEMETRYDIR=C:\Users\matt\AppData\Roaming\go\telemetry
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\MATT~1\AppData\Local\Temp\go-build4268344471=/tmp/go-build -gno-record-gcc-switches
非常感谢任何帮助。
谢谢
更多关于Golang中无法导入github.com/u-root/u-root/pkg/curl的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
感谢您的反馈。我会尝试一下并更新。
更多关于Golang中无法导入github.com/u-root/u-root/pkg/curl的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
请检查是否存在从 GOPATH 导入的引用包。 (为什么不使用 go.mod?这主要是为了方便。)
我已经按照建议尝试了,但仍然无法正常工作。附上了包含 go.mod 文件和输出的屏幕截图。

你好
这是我的 GOPATH 中的内容

抱歉,我对 GO 还比较陌生。
使用 GO.MOD 的话,我是不是只需要创建它并把模块路径放进去?
谢谢
新手?那就使用 go.mod! 执行以下命令: cd (你的项目路径) go mod init (你的项目域名,例如 github.com/xxx/yyyy,这个域名通常是项目可访问的路径,如果你的项目希望被引用;当然,你也可以随便填写) go mod tidy
// 示例代码块
func main() {
fmt.Println("hello world")
}
看起来,您使用想要导入的模块名称来初始化了您的模块。由于您尝试导入的模块正是您用来初始化模块的那个,所以错误信息大致是在说“我无法导入自己”。请尝试使用 go mod init example.com/matt/testing。
这是一个在 Playground 上成功导入该模块的示例:
func main() {
fmt.Println("hello world")
}
这个问题是因为没有使用Go模块导致的。错误信息显示GOMOD=NUL,说明当前目录没有go.mod文件。在Go 1.16+版本中,模块模式是默认启用的。
以下是解决方案:
1. 初始化Go模块:
go mod init your-module-name
2. 然后运行go mod tidy来自动下载依赖:
go mod tidy
3. 如果仍然有问题,可以尝试手动添加依赖:
go get github.com/u-root/u-root/pkg/curl
完整示例:
// 首先在项目根目录执行:
// go mod init example
// go mod tidy
package main
import (
"fmt"
"math"
"github.com/u-root/u-root/pkg/curl"
)
func main() {
fmt.Println("Pi value:", math.Pi)
// 使用curl包
c := curl.New("https://example.com")
resp, err := c.Do()
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
fmt.Println("Response status:", resp.Status)
}
如果遇到网络问题,可以设置GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct
检查模块状态:
go list -m all
这样应该能解决导入问题。模块系统会自动管理依赖版本和下载。


