当我尝试使用我的包newmath
执行我的.go脚本时,我在SublimeText2中遇到以下错误。
"test.go:5:2: import "newmath": cannot find package"
这是我在SublimeText2中的构建系统
{
"cmd": ["go","run", "${file}"],
"working_dir": "${file_path}",
"selector": "source.go, source.g"
}
但是当我在终端中执行我的脚本时,go-compiler可以找到包,并且 成功 执行。我注意到GOPATH在重新启动后或一段时间后重置:/
我的环境:
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/daggi/gocode/"
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CGO_ENABLED="1"
我认为这是SublimeText2的路径/环境问题,但我不知道。
谢谢。
答案 0 :(得分:2)
构建系统似乎不共享GoSublime
设置环境,也不共享您自己的shell环境。所以你必须具体设置它:
{
"cmd": ["go","run", "${file}"],
"working_dir": "${file_path}",
"selector": "source.go, source.g",
"path": "/usr/lib/go/bin:$PATH",
"env": {
"GOPATH": "$HOME/gocode/",
"GOROOT": "/usr/lib/go",
"PATH": "/usr/lib/go/bin:$PATH"
}
}
如果您以Sublime项目为GOPATH的方式工作,您也可以将GOPATH
设置切换为使用${project}
而不是显式GOPATH。
答案 1 :(得分:1)
可能与此GoSublime问题有关,即使您似乎没有使用GoSublime:
OS X和Ubuntu上已经报道了这一点。问题似乎是shell变量没有传递给GUI(本例中为ST2),这超出了GoSublime。
https://github.com/DisposaBoy/GoSublime/issues/71
在Sublime Text 2用户设置中,您可以尝试设置您的环境变量(我说这不确定“env”条目是否由GoSublime或ST2专门读取,所以这可能会也可能不会起作用,如果它不是你可能想要安装和使用GoSublime,这是非常棒的IMO):
"env": {
"GOROOT": "/usr/lib/go",
"GOPATH": "/home/daggi/gocode"
}
HTH