出于某些原因,我想建立一个围棋项目( docker 群)从头开始,遵循official doc.

如果我这样做,效果会很好:

...
cd $GOPATH/src/github.com/docker/swarm
go install .

但是,如果我try "一行"并避免cd行,它就失败了:

go install $GOPATH/src/github.com/docker/swarm

ERROR: can't load package: 
package <my go path>/src/github.com/docker/swarm: 
import "<my go path>/src/github.com/docker/swarm": 
cannot import absolute path

为什么不能go 处理这条绝对的道路呢?

推荐答案

jimB是正确的,包是相对于导入路径的.没有"绝对"导入的功能.

虽然规范中没有具体说明,但它确实在https://golang.org/ref/spec#ImportPath处暗指:

ImportPath的解释取决于实现,但它通常是已编译包的完整文件名的子字符串,可能与已安装包的存储库有关.

在相对导入和供应商方面有一些变化可能会对您起作用(请参阅Go 1.5供应商实验,现已在1.6https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit?pref=2&pli=1中提供)

Go相关问答推荐

如何使用Gorilla WebSockets实现Http.Hijacker&;alexedwards/scs/v2

为什么Slices包中的函数定义Slice参数的类型参数?

go grpc:无法导入github.com/golang/protobuf/proto(没有所需的模块提供包github.com/gorang/protobuf-proto)

golang regex基于关键字拆分字符串

关于如何使用 Service Weaver 设置多个不同侦听器的问题

Go 中的 protobuf FieldMask 解组

如何从 Go Lambda 函数返回 HTML?

在 Go sync.Map 中,为什么这部分实现不一致或者我误解了什么?

同一文件上的多个 Arrow CSV 阅读器返回 null

最长连续重复的字符golang

如何以干净的方式在中间件中注入 repo 或服务?

使用 LINQ 对内部数组进行排序

Golang - POST 失败(NoSurf CSRF)

如何使用 go-git 将特定分支推送到远程

切片到数组指针的转换

Ginkgo/Gomega panic 测试失败

使用 Go 读取 TOML 文件时结果为空

在 golang 中联合一个接口和类型

Go 导入范围查找 protobuf 类型

不理解切片和指针