首页 > 解决方案 > Go 不允许建立绝对路径

问题描述

我正在尝试通过 exec.Command 自动化构建,我的命令如下:

exec.Command("/usr/bin/go", "build", "/path/to/my/go/project")

但编译器说

无法导入绝对路径

注意:/path/to/my/go/project是包含的文件夹go.mod

标签: go

解决方案


包是相对于导入路径的。没有“绝对”导入的能力。

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

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

相对导入和销售可能对您有用(请参阅 GO 1.5 销售实验,现在在 1.6 中可用https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit?pref=2&pli= 1 )

另一种方式:您可以在 cmd.Dir 变量中添加 Working_dir。

cmd := exec.Command("/usr/bin/go", "build")
cmd.Dir = "/path/to/my/go/project"
cmd.Run()

推荐阅读