Go 为什么可以';不能从绝对路径构建?
出于某种原因,我想从源代码构建一个go项目(docker swarm),遵循以下步骤 如果我这样做,效果会很好:Go 为什么可以';不能从绝对路径构建?,go,Go,出于某种原因,我想从源代码构建一个go项目(docker swarm),遵循以下步骤 如果我这样做,效果会很好: ... cd $GOPATH/src/github.com/docker/swarm go install . 但是,如果我尝试“一行”它并避开cd,它就会失败: go install $GOPATH/src/github.com/docker/swarm ERROR: can't load package: package <my go path>/src/git
...
cd $GOPATH/src/github.com/docker/swarm
go install .
但是,如果我尝试“一行”它并避开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
安装$GOPATH/src/github.com/docker/swarm
错误:无法加载程序包:
package/src/github.com/docker/swarm:
导入“/src/github.com/docker/swarm”:
无法导入绝对路径
为什么不能处理这个绝对路径?JimB是正确的,包是相对于导入路径的。没有“绝对”导入的功能 虽然规范中没有明确说明,但在以下方面确实提到了它: ImportPath的解释取决于实现,但它通常是已编译包的完整文件名的子字符串,并且可能与已安装包的存储库相关
在相对导入和销售方面有一些变化可能适合您(请参见GO 1.5销售实验,现在在1.6中提供)我来这里是为了找到同一问题的答案,因为我做的是同一件事,发现有两种方法可以做到这一点 所以我想我会分享: 从包目录中运行:
cd $GOPATH/src/github.com/docker/swarm
go install .
作为相对回购:
go install github.com/docker/swarm
官方go文档中有一些详细信息。包由导入路径引用,go工具与包一起工作。