我正在尝试以交互模式运行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)
6条答案
按热度按时间wwwo4jvm1#
您需要将
GOPATH/bin
添加到PATH
。更新[Go 1.8及以上版本]:
GOPATH
将默认为$HOME/go
。如果没有显式设置GOPATH
,以上将不起作用。要设置这两个,请将以下内容添加到
.profile
文件中:ecfsfe2w2#
1.将这些行添加到
~/.zshrc
1.运行
source ~/.zshrc
5jvtdoz23#
二进制
go-eval
是否在$GOPATH/bin
中?您是否以$GOPATH/bin/
作为工作目录运行该命令?如果没有,那可能就是问题所在。go get
和go 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
fxnxkyjh4#
在使用
export PATH="~/go/bin:$PATH"
时遇到此问题。似乎
~
是造成问题和改变到完整的路径工作。尝试类似这样的代码,它不会使用波浪号:
export PATH="$HOME/go/bin:$PATH"
kjthegm65#
我想在给出的答案之外再补充一点。
作为一个有用的提示,你可以随时使用which命令测试你的命令。
如:哪个去
如果找不到该命令,您就知道有一个PATH问题需要首先解决。
然后,您可以使用find命令集中查找该命令。
如:find / -name“go”-print 2>/dev/null
第一个斜杠是开始搜索的目录,-name的参数是您要查找的命令,-print的结果看起来很好。2>/dev/null发送neverland(null)无法访问的目录的结果,这样你就不需要看到一堆错误。
使用此过程可以帮助您快速找到有问题的命令,然后您可以将其添加到PATH env变量,并且可以按照其他答案中的说明访问该命令。
t8e9dugd6#
以上的答案都是自我解释。除此之外,我想补充的是,默认情况下,您只能从终端访问那些命令,而无需将
bin
文件夹添加到环境变量的二进制文件路径,无论是linux,mac还是windows。否则,您必须指定该软件的bin文件夹的路径,然后是二进制名称。例如,
<path_to_bin_folder>/go-eval
。这是您无法直接从命令行执行该命令的最常见原因。请记住这一点,并尝试在网上搜索答案之前,因为这将最有可能解决您的问题。你所需要知道的就是安装路径。
因此,将以下内容写入终端的
rc
或profile
文件并保存,例如zsh是~/.zshrc
,bash是~/.bash_profile
或~/.bash_rc
。现在虽然文件被保存了,但是更改不会立即反映出来。你必须像上面提到的那样获取配置文件。对于此类型
source ~/.zshrc
。您现在应该能够直接从命令行运行该命令了。即使问题仍然存在,请尝试退出终端会话并注销,然后登录。如果你想为其他软件包添加bin文件夹的路径,你可以使用
:
将它附加到$PATH环境变量中。例如,如果你想把path也添加到java二进制文件中,那么就这么做吧另外,在单独的环境变量中定义包的根文件夹的路径也是一个很好的做法(例如
$GOPATH="$HOME/go"
)。如果安装路径在将来发生了变化,那么你只需要更新与该二进制文件相关的环境变量(例如update,$GOPATH=“newpath”),你的命令将像以前一样工作,因为$GOPATH中的变化将反映在$PATH中。