Go 1.5 到 1.6:不允许导入循环

Rad*_*ich 2 go

我正在尝试从 Go 1.5.3 迁移到 Go 1.6,对于某些包,当我尝试为 1.6 构建它们时,我遇到“不允许导入周期”错误。

例如,为了构建我得到的 golint 工具:

import cycle not allowed
package github.com/golang/lint/golint
    imports flag
    imports errors
    imports runtime
    imports runtime/internal/atomic
    imports runtime
Run Code Online (Sandbox Code Playgroud)

我的本地环境是否存在任何问题,或者有什么方法可以解决这个问题?

go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/radek/Projekty/Go"
GORACE=""
GOROOT="/home/radek/Software/Go/go1.6"
GOTOOLDIR="/home/radek/Software/Go/go1.6/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
Run Code Online (Sandbox Code Playgroud)

Dus*_*tin 5

前几天我就遇到了这种情况。这与我的环境变量设置错误有关。

执行go version并检查您是否正在使用预期的 go 发行版进行构建。

如果它不是您期望的版本,请确保将您的$GOROOT和 或$GOPATH变量更新为正确的设置。

https://golang.org/doc/install

  • 这似乎不是问题的具体答案。如果是这样并且我不明白为什么,那么我想你应该更好地解释其中的关系。 (2认同)