V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
junwind
V2EX  ›  Go 编程语言

目前 golang 环境的正确搭建姿势是什么?

  •  
  •   junwind · 5 小时 8 分钟前 · 2169 次点击

    为什么我看到还有很多教程都是基于 gopath 的, 一上来就是配置 goroot ,gopath ,创建固定的目录 pkg ,src ,。。。

    大家一般的 go 开发环境怎么搭建呢。项目中的依赖是怎么处理呢?

    37 条回复    2025-03-04 14:24:12 +08:00
    EricYuan1
        1
    EricYuan1  
       5 小时 6 分钟前
    cy
    securityCoding
        2
    securityCoding  
       5 小时 5 分钟前
    NX2023
        3
    NX2023  
       5 小时 5 分钟前 via iPhone
    靠 GoLand 自己管理,本地不用手动装,直接 GoLand 里面下
    cyrivlclth
        4
    cyrivlclth  
       5 小时 2 分钟前   ❤️ 1
    你的教程是不是太老了?一般 goland ,没有 goland 也是装好 go 之后直接 mkdir 一个文件夹,然后这个文件夹就是你的项目路径了,go mod init 一下不就行了。。。
    ym1ng
        5
    ym1ng  
       5 小时 1 分钟前
    go mod
    seth19960929
        6
    seth19960929  
       4 小时 59 分钟前   ❤️ 1
    1. 安装 golang (放入环境变量)
    2. 用 gomod, 抛弃所有 goroot, gopath, 已经没人用了(pkg, src)
    ninjashixuan
        7
    ninjashixuan  
       4 小时 56 分钟前
    go path 怕不是好多年前的教程了。
    junwind
        8
    junwind  
    OP
       4 小时 56 分钟前
    @seth19960929 谢谢,可能是有些教程比较老吧,总是要扯什么 gopath 要配置,要按格式创建目录。
    clino
        9
    clino  
       4 小时 55 分钟前
    有个 goenv ,和 Python 的 pyenv 类似,可以用这个切换不同的 go 版本
    Trim21
        10
    Trim21  
       4 小时 52 分钟前   ❤️ 1
    按照我的理解,golang 的想法是开发者不要自己管理工具链的版本,随便装一个足够新的 go (>= 1.21 ),然后让 go 自己根据对应项目的 go.mod 下载使用对应版本的工具链。
    linuxsuren
        11
    linuxsuren  
       4 小时 38 分钟前
    Goland 安装后啥都不用管,点点点。参与开源项目还能拿到免费的 License
    https://github.com/LinuxSuRen/api-testing
    pike0002
        12
    pike0002  
       4 小时 37 分钟前
    建议可以的话:
    1. 装 gvm ,便于多版本 go 管理,对于一些特性测试或者多项目的情况比较好。尤其适合要在不同版本间测试同一个特性不同版本间表现时,比如 go 的 for-range 变更。https://www.pixelstech.net/article/1732171804-fix-for-range-issue-again-in-go-1-22?lang=chinese
    2. 项目建在哪不是很重要,建议项目用 go mod 管理,这样的话依赖管理也比较好搞。
    pkoukk
        13
    pkoukk  
       4 小时 35 分钟前
    唯一指定包管理模式:go mod
    (其实极少部分情况会用 go vendor)
    8355
        14
    8355  
       4 小时 24 分钟前
    @junwind 那都是 2015 年前后的事了。。。框架还是教 beego 是吧
    IDAEngine
        15
    IDAEngine  
       4 小时 16 分钟前
    golang 自带 go mod
    tairan2006
        16
    tairan2006  
       4 小时 12 分钟前
    go mod init

    一般用最新版 go 就行,除非你依赖了一些奇奇怪怪的库
    NessajCN
        17
    NessajCN  
       4 小时 12 分钟前
    sudo pacman -S go 呗, 还要咋样

    你在墙内就再加两句
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    THESDZ
        18
    THESDZ  
       4 小时 12 分钟前
    wentx
        19
    wentx  
       4 小时 2 分钟前
    brew install go

    mkdir myfxckproject && cd myfxckproject
    go mod init ...
    ScepterZ
        20
    ScepterZ  
       4 小时 1 分钟前
    安装之后 go env -w 那么几条就行了
    主要是 goproxy 还有 1.21 之后的 toolchain ,1.21 之后也不需要上边说的 gvm 之类的了
    geekzhu
        21
    geekzhu  
       4 小时 0 分钟前
    Felldeadbird
        22
    Felldeadbird  
       3 小时 56 分钟前
    win 下我是这样。linux 随便一个目录。
    fffq
        23
    fffq  
       3 小时 56 分钟前
    只能说教程太老,没必要看了
    jackmod
        24
    jackmod  
       3 小时 54 分钟前
    不使用 GPU 的话直接用 docker 简单粗暴
    windows 下的 docker 没法用内存来扩展显存
    zfabl
        25
    zfabl  
       3 小时 39 分钟前
    推荐[mise]( https://github.com/jdx/mise) , 可以管理很多开发工具的版本
    ziyeziye
        26
    ziyeziye  
       3 小时 23 分钟前
    直接下载 go 安装包,用 go mod init 开搞就行了,最多配一个 gopath
    bintianbaihua
        27
    bintianbaihua  
       3 小时 13 分钟前
    直接 go mod 管理就好了。 安装 go 环境,随便选择一个目录即可。 然后 vscode 安装 go 插件,就可以了。
    hzzhzzdogee
        28
    hzzhzzdogee  
       2 小时 49 分钟前
    还在 gopath, 19 年 gomod 实验性支持后就再没理会 gopath 这些配置了
    gam2046
        29
    gam2046  
       2 小时 34 分钟前
    一般是 VS Code + Dev Container ,不同项目也可以比较方便的用不同版本。

    容器内 go mod init 就可以开始写代码了。
    ziyeziye
        30
    ziyeziye  
       2 小时 30 分钟前
    配置 gopath 是自己确定包文件存放在哪个盘的,不然都存 c 盘去了,当然用 linux 和 mac 就不用管了,安装包下了直接就开写
    seers
        31
    seers  
       2 小时 27 分钟前 via Android
    自己写 init ,导入就 tidy 下
    Ipsum
        32
    Ipsum  
       1 小时 44 分钟前
    Go.dev 解压了,配置 path 不就用了?
    zxjxzj9
        33
    zxjxzj9  
       1 小时 30 分钟前
    win 下才需要,mac 和 linux 都是直接装 装完 go mod init go mod tidy 就搞定
    xpzouying
        34
    xpzouying  
       1 小时 16 分钟前
    现在的 Golang 不需要配置 GOPATH 之类的环境变量,
    按照官方教程下载 Golang 即可,Linux/Mac 都是下载压缩包解压缩到 /usr/local/go 中,然后把 /usr/local/go/bin 加入到 PATH 环境变量即可。

    推荐一个自己写的常用 HTTP Server 的模板,可以按照这个快速创建一个 Go 的 HTTP Server (基于 Gin ),
    https://github.com/xpzouying/go-template
    iyaozhen
        35
    iyaozhen  
       56 分钟前
    看到说 gopath 赶紧❌掉,基本上都是老掉牙的教程

    最简单的就是打开 GoLand ,直接用
    ota
        36
    ota  
       55 分钟前
    conda
    vincentWdp
        37
    vincentWdp  
       44 分钟前
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5373 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:08 · PVG 15:08 · LAX 23:08 · JFK 02:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.