go - 在 Go 版本 1.13 上为 aws-sdk-go 构建依赖项失败
问题描述
我一直在尝试在 Go v1.13 上构建一个模块,该模块依赖于github.com/aws/aws-lambda-go
并且github.com/aws/aws-sdk-go
在两个导入上失败:
"github.com/aws/aws-sdk-go/aws/service/s3"
"github.com/aws/aws-sdk-go/aws/service/s3/s3manager"
目录包含我的模块定义GOOS=linux GOARCH=amd64 go build -o dist/api ./api
的stderr如下:api
api/main.go:11:2: cannot find package "github.com/aws/aws-sdk-go/aws/service/s3" in any of:
/usr/local/go/src/github.com/aws/aws-sdk-go/aws/service/s3 (from $GOROOT)
/u/go/src/github.com/aws/aws-sdk-go/aws/service/s3 (from $GOPATH)
api/main.go:12:2: cannot find package "github.com/aws/aws-sdk-go/aws/service/s3/s3manager" in any of:
/usr/local/go/src/github.com/aws/aws-sdk-go/aws/service/s3/s3manager (from $GOROOT)
/u/go/src/github.com/aws/aws-sdk-go/aws/service/s3/s3manager (from $GOPATH)
老实说,我不知道为什么会发生这种情况,任何投入都将不胜感激。
已经尝试使用go get
以确保已提取依赖项:
$ go get github.com/aws/aws-sdk-go
并且请求的导入路径存在于$GOPATH/src/github.com/aws/aws-sdk/go/aws/service/s3
和$GOPATH/src/github.com/aws/aws-sdk/go/aws/service/s3/s3manager
此外,尝试go clean --cache --modcache
在删除先前拉取的模块的同时使用清除缓存。
仔细检查,我完全忽略了一些东西,导入路径/u/go/src/github.com/aws/aws-sdk-go/aws/service/s3
而不是/u/go/src/github.com/aws/aws-sdk-go/service/s3
前者在aws
内部有一个额外的子路径aws-sdk-go
。
解决方案
刚刚意识到我在代码中犯的复制/粘贴错误。
import (
"github.com/aws/aws-sdk-go/aws/service/s3"
"github.com/aws/aws-sdk-go/aws/service/s3/s3manager"
)
代替
import (
"github.com/aws/aws-sdk-go/service/s3"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
)
推荐阅读
- mysql - MySQL - 连接和之间
- ffmpeg - 将所有文件夹中的所有 .wav 文件转换为 .flac
- docker - 如何在不使用 docker-in-docker 的情况下在 jenkins 管道中使用 docker
- python - 如何解决此唯一约束失败:auth_user.username
- azure-sqldw - 我在 azure SQL DW 中维护库存,并希望使用 T-SQL 计算一天的初始和最终库存。以下是我的详细信息
- python - 检查一个值,如果不满足条件则返回相同的值
- mysql - 如何在表中具有数组字段的列上应用 mysql 连接?
- javascript - 接受连续点的电子邮件的正则表达式
- django - 如何在 django 中自定义视图?
- parquet - 如何使用 pyarrow 从镶木地板文件中获取元数据