godep:exec:“go”:在$PATH中未找到可执行文件

8
我正在尝试在Heroku上部署我的服务器,但我卡在了使用godep的步骤上。我对GO不太熟悉,过去两天一直在寻找解决此问题的方法,实际上这是一个常见的问题,但我无法解决,也许我做错了什么根本性的错误。
我的操作系统是OS X 10.11.2, 我的GOPATH路径为Users/denis/Programming/Golang, 我的PATH路径为$GOPATH/bin, 我正在尝试将godep用于我的项目,该项目位于$GOPATH/src/backend中。
在我的PATH路径中,我有一个可执行的godep文件(而不是.go文件)。
我的整个工作区结构如下。
/Golang/
     .bin/
        godep //executable file
     .pkg/
        .darwin-amd64/
             .//other folders/
     .src/
         .github.com/
         .backend/
         .//other folders// 
1个回答

16

首先,这个代码的输出是什么:

$ echo $PATH

为了运行Go项目,需要在其中至少有两个目录:

  • /path/to/go/installation/bin(例如:/usr/local/go/bin
  • /path/to/your/GOPATH/bin(例如:/Users/denis/Programming/Golang/bin

如果您按照Go安装设置进行操作,则您的go安装应已在PATH中。

https://golang.org/doc/install

鉴于您发布了具有大写字母U的路径/Users/denis/Programming/Golang,我将假定您使用的是OS X系统...

在OS X中,并且如果您使用默认安装,则可以使用一个简单的命令测试Go是否在PATH中:

$ echo $PATH | grep --color=auto "/usr/local/go/bin"

打印整个$PATH并突出显示您的设置是否正确。这是因为上面URL中的OS X GoLang安装程序应该已经修改了您的PATH以包括:

  • /usr/local/go/bin
  • 或者更具体地说,可能是export PATH="$PATH:/usr/local/go/bin"

如果您有一些自定义的.bashrc和/或.profile文件,则很可能您的PATH没有被正确设置。您可以通过执行以下操作来测试:

$ export PATH="$PATH:/usr/local/go/bin"
$ export PATH="$PATH:/Users/denis/Programming/Golang/bin"
$ godep go build
如果现在它能够正常工作,那么你的 .bashrc/.profile 文件中的 PATH 设置不正确。这是一个不同类型的问题,并且有1000种不同的方法可以设置,你可能需要自己解决(或者另外提一个 SO 问题)。 如果这解决了你的问题,那么你需要按照 godep 的指示从项目根目录运行 godep
$ cd $GOPATH/src/backend/
$ godep save
$ git add Godeps/

godep 在 Go 项目的根目录下创建一个 Godeps 目录。如果您有多个 Go 项目/多个可执行文件,则需要在每个运行时的根目录上运行 godep save

也就是说,对于每个您要运行 go build 的可执行文件,您需要在每个目录中运行 godep save

另外,一旦您转到 godep ,则还要将其用于构建和测试:

$ godep go build
$ godep go test
...etc

如果这不是问题所在(您正在按照上述说明运行它),那么请使用更多详细信息更新您的问题,例如您正在运行哪个godep命令,位置在哪里,以及该项目根目录的目录结构是什么样的(包括带有package mainfunc main()函数的文件名)。


1
谢谢你的帮助,我已经将两个路径添加到我的PATH变量中(/usr/local/go/bin,$GOPATH/bin),它可以工作,但是它会在.json文件中生成一个空的Deps:[]块,无论如何还是非常感谢! - Dennis Zinkovski
请确保在项目的根目录下运行“godep save”。 - eduncan911

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接