Golang - 在SublimeText2中找不到包

时间:2012-12-11 23:40:27

标签: go sublimetext2

当我尝试使用我的包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的路径/环境问题,但我不知道。

谢谢。

2 个答案:

答案 0 :(得分:2)

构建系统似乎不共享GoSublime设置环境,也不共享您自己的shell环境。所以你必须具体设置它:

Build systems

{
    "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