Macos “错误”;“未找到命令”;安装后进行评估

Macos “错误”;“未找到命令”;安装后进行评估,macos,go,Macos,Go,我正在尝试以交互模式运行Go 我想使用它,我遵循了他们的自述文件说明: 我成功地运行了go-get-github.com/sbinet/go-eval/ 我运行了go eval,结果是-bash:go eval:command未找到 更多信息: echo$PATH返回:/usr/local/go/bin:… echo$GOPATH返回:$HOME/golang 运行whereis go eval不会返回任何输出 运行go install go eval返回: 无法加载程序包:程序包go e

我正在尝试以交互模式运行
Go

我想使用它,我遵循了他们的
自述文件
说明:

  • 我成功地运行了
    go-get-github.com/sbinet/go-eval/
  • 我运行了
    go eval
    ,结果是
    -bash:go eval:command未找到
更多信息:

  • echo$PATH
    返回:
    /usr/local/go/bin:…

  • echo$GOPATH
    返回:
    $HOME/golang

  • 运行
    whereis go eval
    不会返回任何输出

  • 运行
    go install go eval
    返回:

    无法加载程序包:程序包go eval:无法在以下任何一项中找到程序包“go eval”:
    /usr/local/go/src/go eval(从$GOROOT起)
    $HOME/golang/src/go eval(来自$GOPATH)


您需要将GOPATH/bin添加到PATH

PATH="$GOPATH/bin:$PATH"
更新:,如果未设置,GOPATH默认为
$HOME/go
。如果未明确设置GOPATH,上述将不起作用

要同时设置这两个选项,请将其添加到您的.profile:

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

二进制文件是否在
$GOPATH/bin
中?您是否以
$GOPATH/bin/
作为工作目录运行该命令?如果不是,那可能就是问题所在

go-get
&
go-install
$GOPATH/bin

检查go eval二进制文件的
$GOPATH/bin
。如果存在,请尝试使用
/go eval
$GOPATH/bin
运行它。如果这行得通,你就很好

将来,如果您希望从shell中的任何位置运行
$GOPATH/bin
中的go二进制文件,请将以下内容添加到.bashrc或配置文件中:

export PATH=$PATH:$GOPATH/bin

然后重新启动终端或运行
~/。bashrc
/etc/配置文件

运行go install go eval时,我得到:

无法加载程序包:程序包go eval:无法在以下任意位置找到程序包“go eval”: /usr/local/go/src/go eval(从$GOROOT起) $HOME/golang/src/go eval(来自$GOPATH)

出现上述错误是因为go eval不在
$HOME/golang/src/go eval
中。运行
go-get-github.com/sbinet/go-eval/
将把源代码下载到
$GOPATH/src/github/sbinet/go-eval/
。如果要运行
go install go eval
,必须在
$GOPATH/src
中指定与其在目录层次结构中的位置相关的包名

e、 g。
go install github/sbinet/go eval

除了给出的答案之外,我还想添加这个

作为一个有用的提示,uou可以始终使用which命令测试您的命令

例如:哪个去

如果找不到该命令,您就知道您有一个需要首先解决的路径问题

然后,您可以使用find命令重点查找该命令

例如:find/-name“go”-print 2>/dev/null

第一个斜杠是开始搜索的目录,-name的参数是您正在查找的命令,-print可以获得良好的结果外观。2>/dev/null发送neverland无法访问的目录的结果(null),因此您不需要看到大量错误


使用此过程有助于您快速找到有问题的命令,然后您可以将其添加到PATH env变量中,并按照其他答案中的说明对其进行访问。

以上所有答案都是自我解释的。除此之外,我想补充的是,默认情况下,您只能从终端访问那些没有路径的命令,而二进制文件的
bin
文件夹被添加到环境变量中,无论是linux、mac还是windows

否则,您必须指定该软件的bin文件夹路径,后跟二进制名称。例如,在您的案例中
/go eval

这是无法直接从命令行执行该命令的最常见原因。请记住这一点,并在在线搜索答案之前尝试这一点,因为这很可能会解决您的问题。您只需要知道安装路径

因此,将以下内容写入终端的
rc
profile
文件并保存,例如,对于zsh,它是
~/.zshrc
,对于bash,它是
~/.bash\u profile
~/.bash\u rc

export GOPATH="$HOME/go"
export PATH=$PATH:$GOPATH/bin
现在虽然文件已保存,但更改不会立即反映出来。您必须按照上面提到的方式来源配置文件。对于此类型
源~/.zshrc
。现在应该可以直接从命令行运行该命令了。即使问题仍然存在,请尝试退出终端会话并注销,然后登录

如果要为其他包将路径添加到bin文件夹,可以使用
将其附加到$path环境变量。所以,例如,如果您还想向java二进制文件添加路径,那么只需这样做

export PATH=$PATH:$JAVA_HOME/bin

另外,在单独的环境变量(例如
$GOPATH=“$HOME/go”
)中定义包的根文件夹的路径也是一种很好的做法。如果将来安装路径发生更改,那么您只需更新与该二进制文件相关的环境变量(例如just update,$GOPATH=“newpath”),并且您的命令将像以前一样工作,因为$GOPATH中的更改将反映在$path中。

在使用导出路径=“~/go/bin:$path”时遇到此问题

似乎
~
导致了问题,并更改为完整路径有效

请尝试类似这样的方法,它不会使用瓷砖:


export PATH=“$HOME/go/bin:$PATH”

您的GOPATH是什么?GOPATH/bin在您的路径中吗?$HOME/go/bin在您的路径中吗?有效。您实际上需要在命令中使用“$GOPATH”来获得工作设置。如果你只是手动的话