安装go-eval后出现错误“未找到命令”

rdlzhqv9  于 2023-06-03  发布在  Go
关注(0)|答案(6)|浏览(171)

我正在尝试以交互模式运行Go
我想使用go-eval,我遵循了他们的README指令:

  • 我成功运行了go get github.com/sbinet/go-eval/
  • 我运行了go-eval,结果是-bash: go-eval: command not found

更多信息:

  • echo $PATH返回:/usr/local/go/bin:...
  • echo $GOPATH返回:$HOME/golang
  • 运行whereis go-eval不会返回任何输出
  • 运行go install go-eval返回:

can't load package: package go-eval: cannot find package "go-eval" in any of: /usr/local/go/src/go-eval (from $GOROOT) $HOME/golang/src/go-eval (from $GOPATH)

wwwo4jvm

wwwo4jvm1#

您需要将GOPATH/bin添加到PATH

PATH="$GOPATH/bin:$PATH"

更新[Go 1.8及以上版本]:GOPATH将默认为$HOME/go。如果没有显式设置GOPATH,以上将不起作用

要设置这两个,请将以下内容添加到.profile文件中:

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

ecfsfe2w2#

1.将这些行添加到~/.zshrc

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

1.运行source ~/.zshrc

5jvtdoz2

5jvtdoz23#

二进制go-eval是否在$GOPATH/bin中?您是否以$GOPATH/bin/作为工作目录运行该命令?如果没有,那可能就是问题所在。
go getgo install$GOPATH/bin中安装go二进制文件(如果有)
检查$GOPATH/bin以获取go-eval二进制文件。如果有,尝试从$GOPATH/bin./go-eval运行它。如果成功了你就没事了。
以后,如果你想在shell中的任何地方运行$GOPATH/bin中的go二进制文件,请将以下内容添加到你的.bashrc或配置文件中:
export PATH=$PATH:$GOPATH/bin
然后重新启动终端或运行. ~/.bashrc. /etc/profile
当运行go install go-eval时,我得到:
无法加载包:软件包go-eval:找不到包“go-eval”在任何:/usr/local/go/src/go-eval(from $GOROOT)$HOME/golang/src/go-eval(from $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目录层次结构中的位置相关的包名。
例如go install github/sbinet/go-eval

fxnxkyjh

fxnxkyjh4#

在使用export PATH="~/go/bin:$PATH"时遇到此问题。
似乎~是造成问题和改变到完整的路径工作。
尝试类似这样的代码,它不会使用波浪号:
export PATH="$HOME/go/bin:$PATH"

kjthegm6

kjthegm65#

我想在给出的答案之外再补充一点。
作为一个有用的提示,你可以随时使用which命令测试你的命令。
如:哪个去
如果找不到该命令,您就知道有一个PATH问题需要首先解决。
然后,您可以使用find命令集中查找该命令。
如:find / -name“go”-print 2>/dev/null
第一个斜杠是开始搜索的目录,-name的参数是您要查找的命令,-print的结果看起来很好。2>/dev/null发送neverland(null)无法访问的目录的结果,这样你就不需要看到一堆错误。
使用此过程可以帮助您快速找到有问题的命令,然后您可以将其添加到PATH env变量,并且可以按照其他答案中的说明访问该命令。

t8e9dugd

t8e9dugd6#

以上的答案都是自我解释。除此之外,我想补充的是,默认情况下,您只能从终端访问那些命令,而无需将bin文件夹添加到环境变量的二进制文件路径,无论是linux,mac还是windows。
否则,您必须指定该软件的bin文件夹的路径,然后是二进制名称。例如,<path_to_bin_folder>/go-eval
这是您无法直接从命令行执行该命令的最常见原因。请记住这一点,并尝试在网上搜索答案之前,因为这将最有可能解决您的问题。你所需要知道的就是安装路径。
因此,将以下内容写入终端的rcprofile文件并保存,例如zsh是~/.zshrc,bash是~/.bash_profile~/.bash_rc

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

现在虽然文件被保存了,但是更改不会立即反映出来。你必须像上面提到的那样获取配置文件。对于此类型source ~/.zshrc。您现在应该能够直接从命令行运行该命令了。即使问题仍然存在,请尝试退出终端会话并注销,然后登录。
如果你想为其他软件包添加bin文件夹的路径,你可以使用:将它附加到$PATH环境变量中。例如,如果你想把path也添加到java二进制文件中,那么就这么做吧

export PATH=$PATH:$JAVA_HOME/bin

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

相关问题