go - 在GOPATH模式下不能使用path @ version语法

标签 go

> Set-Variable GO111MODULE -Value on
> go get golang.org/x/tools/gopls@latest
go: cannot use path@version syntax in GOPATH mode
到目前为止,我在学习Go方面经历了非常糟糕的经历。当我尝试在VS Code中重命名变量时,一切就开始了。这是故事。
  • 我正在学习Go,并且曾经写过大约10行。
  • 我使用的是Windows :-[,这是一个障碍。
  • 我正在运行1.13版,我想开始时就好像我所知道的只是Go Modules。
  • 我没有设置GOPATH或GOROOT环境变量。
  • Go工具似乎在c:\Go中。
  • 我下载了正在阅读的书的代码,并在VS Code中打开了它。
  • 我在VS Code中打开了C:\DATA\go\gopl.io\ch1\fetchall\main.goc:\DATA\go是我粘贴代码的地方。
  • VS Code自动安装了很多Go工具来帮助我。
  • 我尝试F2将func main中的变量重命名为对我来说更有意义的名称。
  • 我遇到了
  • Rename failed: gorename: can't find package containing (path to your .go file)
    
    就我的菜鸟头脑所知,解决此错误的方法是,我需要更新一个名为package或gopls的软件包,这是VS Code使用的语言服务器或其他工具。
    因此,我运行了c:\DATA> go get golang.org/x/tools/gopls@latest,但出现了一个错误,该错误似乎与对语法的新支持有关,该语法用于指定版本和Go Modules是新的。
    然后,我阅读了几个小时,发现这与某些GO111MODULE变量以及我从中运行go get的文件夹有关。
    因此,我尝试设置该变量,但它似乎不起作用。
    注意,我从c:\DATA运行这些命令,而不是从书本样本main.go代码所在的位置运行这些命令,因为我猜测此Language Server软件包不适合该代码,而是VS Code使用的东西,因此应该以某种方式在某个地方“全局”安装?但是我可能是错的。
    如您所见,我并没有因为自己在做什么而感到困惑,好吧,TBH,它并不是很有趣:(更新
    我确实将GOPATH设置为c:\DATA\go,但是在PowerShell的VS Code终端中,当我运行Get-Variable时,它没有列出,但是如果我随后运行cmd输入正常的shell提示,则将其设置。奇怪。

    最佳答案

    好的问题是我的代码都不在src目录中。一旦将其全部移动到c:\DATA\go\src中,它就可以工作。

    关于go - 在GOPATH模式下不能使用path @ version语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60043466/

    相关文章:

    go - 如何运行单个 goroutine 实例

    go - 无法识别来自 Switch 语句 golang 中的 channel 的字符串变量

    http - Golang http 重定向奇怪的行为

    go - 从文件访问通过 POST 接收的 JSON

    python - python 中的 Json 编码 dict 和 golang 中的映射不匹配

    php - 使用golang解密用php openssl_encrypt加密的文件

    go - 如何使用 Go API 获取 Stripe Invoice 的确切应付金额而不是整数金额?

    go - Net/http简单动态路由

    json - 从深度嵌套的 JSON 文件中提取值(维基百科 API)

    go - 结构中 slice 的初始化