【问题标题】:Cannot set $GOPATH on Mac OSX无法在 Mac OSX 上设置 $GOPATH
【发布时间】:2014-02-25 06:50:27
【问题描述】:

我正在尝试设置我的 $GOPATH 变量以在我的机器上运行一些示例代码:

$ smitego-example go run main.go 
main.go:5:2: cannot find package "github.com/#GITHUB_USERNAME#/smitego" in any of:
    /usr/local/go/src/pkg/github.com/#GITHUB_USERNAME#/smitego (from $GOROOT)
    ($GOPATH not set)

$ smitego-example export $GOPATH=$HOME
-bash: export: `=/Users/#OSX_USERNAME#': not a valid identifier

github.com/#GITHUB_USERNAME#/smitego/smitego.go的内容:

package smitego

如何设置我的GOPATH 使其始终有效?

【问题讨论】:

    标签: macos go environment-variables


    【解决方案1】:

    从 Go 1.8 开始更新:如果您要安装 Go 1.8(发布时间:2017 年 2 月)或更高版本,Go 工具链为您提供的 GOPATH 是 automatically determined

    在 macOS (nee OS X) 上默认为 $HOME/go - 例如/Users/matt/go/。这使得 Go 入门变得更加容易,您可以在安装 Go 后立即go get <package>


    对于外壳:(手动方法)

    ~/.bash_profile 应该包含export GOPATH=$HOME/goexport PATH=$GOPATH/bin:$PATH$ 的使用很重要:请务必记下我在哪里使用过它(以及我没有在哪里使用过)。

    对于崇高文本:

    Sublime Text 菜单 > 首选项 > 包设置 > GoSublime > 设置:用户

    {
            "shell": ["/bin/bash"],
            "env": {"GOPATH": "/Users/#USERNAME#/go/"},
    }
    

    确保您的GOPATH 未设置为包的完整路径;只是src, pkg, and bin 所在的go 文件夹的根目录。如果你不使用GoSublime,我建议先安装它。

    【讨论】:

    • /usr/bin/bash 在 Mac 或 Linux 上通常是 /bin/bash
    • 如果您通过自制软件安装 go,如果这对任何人都有帮助,那么路径将如下所示:export PATH=/usr/local/opt/go@1.12/bin:$PATH(显然根据您安装的任何内容更新版本)
    【解决方案2】:

    接受的答案对我不起作用。我调查发现原因:我使用的是zsh,而不是bash。

    我需要将以下两行添加到~/.zshrc

    export GOPATH=/Users/username/go
    export PATH=$GOPATH/bin:$PATH
    

    【讨论】:

    • 我遇到了同样的问题。谢谢。
    【解决方案3】:

    在分配变量时不要将$ 前缀放在变量上,只有在读取时才可以。

    export GOPATH=$HOME
    

    要使其永久化,请将命令放入您的.bash_profile

    这适用于终端外壳。如果需要设置会影响GUI应用的环境变量,见Environment variables in Mac OS X

    【讨论】:

    • 在 OS X 和使用 Sublime 上,用户可能必须使用 launchctl 吗?我不确定 .bash_profile 对 GUI 应用程序是否重要。所以可能需要这样做:launchctl setenv GOPATH=/path/to/home,并使其在两次启动之间持续添加到 /etc/launchd.conf
    • 谢谢!我今天学了些新东西。但是,现在我得到:cannot find package "github.com/sergiotapia/smitego" in any of: / /usr/local/go/src/pkg/github.com/sergiotapia/smitego /Users/sergiotapia/src/github.com/sergiotapia/smitego。有什么想法吗?
    • 我对@9​​87654326@一无所知,所以我无法帮助您解决这部分问题。我的回答只是显示了设置环境变量的正确方法;弄清楚你应该把它设置成什么是一个单独的问题。
    • @Serg 在修改您的 .bash_profile 并获取它/重新加载 shell 后是否从命令行“开始构建”工作?
    • 你能把这个讨论从我的回答中剔除吗?我不希望收到所有这些问题的通知。
    【解决方案4】:

    1) 下载并安装 Go 工具 https://golang.org/doc/install

    2) 设置 Go 工作区

    mkdir $HOME/go
    cd $HOME/go
    mkdir bin pkg src
    

    3) 设置 Go 环境

    sudo vi ~/.bash_profile
    export GOPATH=$HOME/go
    PATH=$PATH:$GOPATH/bin
    

    通过创建、构建和运行 Go 项目进行测试

    mkdir $GOPATH/src/github.com/todsul/hello
    touch $GOPATH/src/github.com/todsul/hello/hello.go
    go install
    hello
    

    【讨论】:

    • 这是最好的答案恕我直言。我一字不差地跟着它写了代码。
    • “sudo vi ~/.bash_profile”是否创建了一个新的 .bash_profile 文件?如果是,那么这个文件应该在哪里创建?
    • 它将在根目录中创建它。请注意,如果您使用的是 Oh My Zsh,那么您必须将 go 路径(步骤 3)添加到您的 .zshrc,然后运行 ​​source .zshrc,如果您希望更改在不关闭终端的情况下生效。此外,您不必使用 vi ~/.bash_profile,您也可以在 atom 或 nano 文本编辑器中打开文件
    • 这个答案让我走了!我正在从 24/7 的 Windows 中重新开始 Mac 开发 - 所以以前没有使用过 vim - 这有帮助,commandlinemac.blogspot.com/2008/12/vim.html
    【解决方案5】:

    http://www.golang-book.com/guides/machine_setup#osx

    只有在~/.bashrc 上设置路径的说明,而不是~/.bash_profile 上的说明,这要归功于这个线程能够让我的示例文件构建。

    export GOPATH=$HOME
    export PATH=$PATH:$GOPATH/bin
    

    其他 Mac 用户需要将以上内容添加到他们的~/.bash_profile

    【讨论】:

    • 本指南现在使用我编写的一个程序 (github.com/badgerodon/penv),它使用 launchctl (github.com/badgerodon/penv/blob/master/darwin_dao.go) 为 OSX 保存环境变量。 AFAIK 这是在 OSX 中可靠地设置环境变量的唯一方法。
    • 强烈建议不要这样做,你的GOPATH 你的主目录。我(和许多其他 cmets)建议将 GOPATH 设置为 $HOME/go
    【解决方案6】:

    使用 brew 或 package 安装 go 后,这解决了我的问题:

    export GOROOT="/usr/local/go"
    export GOPATH="$HOME/Documents/goWorkSpace"
    export PATH="$HOME/Documents/goWorkSpace/bin:$PATH"
    

    【讨论】:

    • 为我工作 Big Sur M1,谢谢 :)
    【解决方案7】:

    在 macOS High Sierra 版本 10.3.3 上,Go[go 版本 go1.10.1 darwin/amd64] 安装在此处:

    在 :~/.bashrc 上添加了以下内容

    export GOPATH=/usr/local/go
    export PATH=$PATH:$GOPATH/bin
    

    然后开始工作

    【讨论】:

      【解决方案8】:

      使用最新 Mac 及 Catalina 版本以上的人, 你们需要更新 .zshrc 文件而不是 .bash。

      将以下两行添加到 ~/.zshrc:

      导出 GOPATH=/Users/username/go

      导出 PATH=$GOPATH/bin:$PATH

      它应该工作。!!

      这在不久前得到了更改,请参阅下面的链接以了解为什么 .zshrc 而不是 .bash_profile https://eshop.macsales.com/blog/56921-moving-from-bash-to-zsh-terminal-changes-in-macos-catalina/

      【讨论】:

        猜你喜欢
        • 2016-05-29
        • 2016-07-07
        • 2014-01-04
        • 2015-04-28
        • 2023-03-27
        • 2017-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多