请教一个非常基础的问题: 这 GOPATH 怎么也设置不好

2019-03-22 11:35:13 +08:00
 ericgui

就是用 vs code,设置了 gopath 是当前目录路径,GO: current GOPATH 也显示正确。 但用go env GOPATH,仍然是默认的 GOPATH

这就非常奇怪了

而且很显然,go get 也都安装到默认路径下了

哪位能指点一下吗?谢谢

3332 次点击
所在节点    Go 编程语言
14 条回复
boris1993
2019-03-22 12:04:45 +08:00
go mod 已经摆脱 GOPATH 了吧,能不用就不用吧

一定要用的话,直接指定系统环境变量
sulinehk
2019-03-22 12:05:28 +08:00
windows 应该要设置环境变量吧?以 go env 为标准
Paual
2019-03-22 13:15:15 +08:00
2 楼说的对哈,要在 windows 下面修改环境变量的,默认是在当前用户下面的目录,可以去改一下,我刚试了一下生效了
HuasLeung
2019-03-22 17:03:50 +08:00
添加环境变量 GOPATH,指向你的工作空间
imherer
2019-03-22 17:35:37 +08:00
推荐 go mod
doublleft
2019-03-22 17:36:30 +08:00
GOPATH 了解一下就好,我也推荐一波 go mod
knowckx
2019-03-22 17:50:36 +08:00
新人不推荐上 vscode 虽然我目前用着这个,但是踩了 N 多的坑。
还是 goland 省心
pmispig
2019-03-22 17:54:32 +08:00
go mod 依然是很愚蠢的东西, 它还是下载在 GOPATH 下面,其实应该像 maven 放到 ~/.gopkg 然后编译的时候挪到当前项目的 .gopkg 下面。
说是可以控制版,多个项目依赖同一库的不同版本时,冲突是怎么解决的
xiaogui
2019-03-22 18:05:47 +08:00
有全局 GOPATH,也有项目 GOPATH 的吧?
Fitz
2019-03-22 18:11:32 +08:00
@pmispig 老哥 没喷对吧 GOPATH 跟.m2 不一样吗 多个项目依赖同一库的不同版本这不冲突啊
qq976739120
2019-03-22 18:18:02 +08:00
@pmispig 会有版本号的啊...
wweir
2019-03-22 19:05:05 +08:00
vscode 配置 go interfere gopath,可以实现自动切换 gopath。
还有,当前 gopath 还是免不了的。gocode-mod 速度巨慢,三个 golang language server 的实现也还没完善 go module 的支持。
PS: goland 虽然有缓存,补全速度快点,相比普通补全,go module 的补全、跳转依然慢了很多
wweir
2019-03-22 19:09:16 +08:00
@pmispig 生态已经形成,gopath 没个十几二十年是抹不掉的,不想看到的话,自己把它定义到看不见的地方吧

依赖同一库的不同版本可以通过把多个库同时编译进二进制文件解决,貌似当前也还有点问题
pmispig
2019-03-22 19:14:52 +08:00
@Fitz 嗯,这个的确没喷对,不好意思,我原来以为他是通过 checkout 的方式来切换版本,实际测试发现目录名带了版本号的。不过 GOPATH 可没喷错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/547334

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX