无法在 Mac OSX 上设置 $GOPATH

Posted

技术标签:

【中文标题】无法在 Mac OSX 上设置 $GOPATH【英文标题】:Cannot set $GOPATH on Mac OSX 【发布时间】: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 使其始终有效?

【问题讨论】:

【参考方案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/

【讨论】:

以上是关于无法在 Mac OSX 上设置 $GOPATH的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OSX 上设置 System V 消息队列大小

phpmyadmin 在初始安装时无法登录(mac osx)

如何关闭OSX 10.11 SIP

在 Mac OSX 10.6.8 上找不到 mysqladmin

VST 插件在 OSX 上无法识别

Xampp 不会在 Mac OSX 上启动 MySQL 服务器?