无法在Mac OSX上设置$ GOPATH


69

我正在尝试设置$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该如何设置它,使其始终有效?

Answers:


133

从Go 1.8开始更新:如果您要安装Go 1.8(发布日期:2017年2月)或更高版本,GOPATH将由Go工具链自动确定

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


对于外壳:(手动方法)

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

对于崇高文字:

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

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

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


4
/usr/bin/bash通常/bin/bash在Mac或Linux上。
tidwall

万一这对任何通过安装程序进行安装的人都有帮助,那么路径将是这样的:(export PATH=/usr/local/opt/go@1.12/bin:$PATH显然根据安装的内容更新版本)
Michael

25

接受的答案对我不起作用。我调查并找到了原因:我使用的是zsh,而不是bash。

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

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

16

$分配变量时,请不要在变量上加上前缀,仅在读取变量时才使用。

export GOPATH=$HOME

要使其永久存在,请将命令放在中.bash_profile

这将适用于终端外壳。如果需要设置将影响GUI应用程序的环境变量,请参阅Mac OS X中的环境变量。


1
在OS X上并使用Sublime,用户可能必须使用launchctl吗?我不确定.bash_profile是否会影响GUI应用程序。因此,可能需要这样做:launchctl setenv GOPATH = / path / to / home,并使其在引导之间持续进行,将其添加到/etc/launchd.conf
powerj1984 2014年

谢谢!我今天学了些新东西。但是,现在我得到了: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。有任何想法吗?
sergserg

我对此一无所知go,因此我无法为您提供帮助。我的回答仅显示设置环境变量的正确方法。弄清楚您应该将其设置为什么是一个单独的问题。
2014年

1
@Serg在修改.bash_profile并将其采购/重新加载外壳后,是否可以从命令行“构建”?
powerj1984

1
您可以从我对答案的评论中删除此讨论吗?我不希望收到所有这些问题的通知。
Barmar 2014年

7

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

这是恕我直言的最佳答案。我一字不漏地跟着它,然后立即编写go代码。
pim

“ sudo vi〜/ .bash_profile”是否正在创建新的.bash_profile文件?如果是,那么应在哪里精确创建此文件?
Hank Moody

1
它将在根目录中创建它。请注意,如果您使用的是Oh My Zsh,则必须改为添加go路径(第3步).zshrc,然后source .zshrc在不更改终端的情况下使更改生效就运行。你也不要有使用vi〜/ .bash_profile,您也可以在原子或纳米文本编辑器打开该文件,以及
Homam Bahrani

1
这个答案让我走了!我从Windows 24/7开始回到Mac开发-所以以前没有使用过
Vim-

4

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中可靠地设置环境变量的唯一方法。
卡雷布(Caleb)2015年

对此强烈建议,您的主目录GOPATH 就是您的主目录。我(以及许多其他评论)建议设置GOPATH$HOME/go
jnovack

1

在安装brew或软件包后,这解决了我的问题:

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

0

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

前往安装位置

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

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

然后去工作

去工作

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.