Golang错误:找不到包命令

Golang错误:找不到包命令,go,Go,运行.go文件时出现此错误 ./instance.go: line 1: package: command not found ./instance.go: line 3: syntax error near unexpected token `newline' ./instance.go: line 3: `import (' 到目前为止,我已经看到错误通常意味着没有设置GOPATH,但是,echo“$GOPATH”输出/root/go,我的路径当前是/bin:/usr/local/sbin

运行.go文件时出现此错误

./instance.go: line 1: package: command not found
./instance.go: line 3: syntax error near unexpected token `newline'
./instance.go: line 3: `import ('
到目前为止,我已经看到错误通常意味着没有设置GOPATH,但是,
echo“$GOPATH”
输出
/root/go
,我的路径当前是
/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/go/bin:/root/go/bin:/root/go/bin:/go/bin

下面是instance.go的前几行:

package webrun

import (
        "context"
        "crypto/hmac"
        "crypto/rand"

这些不是Go错误

但是,我可以通过尝试执行go源文件来重现您的错误:

$ chmod +x in.go
$ ./in.go
./in.go: line 1: package: command not found
./in.go: line 3: syntax error near unexpected token `newline'
./in.go: line 3: `import ('
你不能用Go来做这件事,因为它不被解释。您需要先将代码编译为可执行文件,然后才能运行它

您可以阅读帮助以了解如何使用

就你而言

go run instance.go
将尝试编译并运行正在执行的源文件,但正如另一位评论员所指出的,不在
main
包中的代码不是设计为直接执行的


如果这是您的代码,您需要将其写入包main中,如果不是,那么您可能正在尝试执行一个库(这意味着我不清楚您正在尝试执行什么)。

这些都是not Go错误

但是,我可以通过尝试执行go源文件来重现您的错误:

$ chmod +x in.go
$ ./in.go
./in.go: line 1: package: command not found
./in.go: line 3: syntax error near unexpected token `newline'
./in.go: line 3: `import ('
你不能用Go来做这件事,因为它不被解释。您需要先将代码编译为可执行文件,然后才能运行它

您可以阅读帮助以了解如何使用

就你而言

go run instance.go
将尝试编译并运行正在执行的源文件,但正如另一位评论员所指出的,不在
main
包中的代码不是设计为直接执行的


如果这是您的代码,您需要将其写入包main中,如果不是,那么您可能正在尝试执行一个库(这意味着我不清楚您试图执行的是什么)。

您只能执行可运行的文件。您的go文件无法运行。您需要将其编译为二进制文件并在其上执行。/(点斜杠)

您只能选择/可运行的文件。您的go文件无法运行。您需要将其编译为二进制文件并在其上执行。/(点斜杠)

如果您正在执行
go run instance.go
操作,问题是您无法运行不在主程序包中的go文件
webrun
是一个包或库,不是一个可执行文件。我将它放在一系列其他文件中,我将运行什么?以下是一些文件:`app.yaml dns.go instance README.md templates util CONTRIBUTORS LICENSE instance.go connectsk statkeeper tmpimg`您能否添加更多信息:文件的更多信息,您如何尝试“运行此go文件”,具体来说,您尝试了哪些命令。这个包在您的文件系统上的什么位置?我当前在/root/go/src/---------------------/-----------/-----------/instance目录中-当然可以编辑。它还包含包的其余文件。我试着像运行SH一样使用./instance来运行文件,但这不起作用,所以我改为./instance.go。如何运行它?您应该有一个带有
package main
的文件,该文件有一个'func main(){…`该函数应该是程序的开始,这是您应该运行的文件。
go
。在该文件中,您可以导入
dns.go
和您拥有的任何其他
.go
文件。如果您正在运行
go run instance.go
,那么问题是您无法运行不在主包中的go文件。
webrun
包或库不是可执行文件。我在一系列其他文件中有它,我将运行什么?以下是一些文件:`app.yaml dns.go instance README.md templates util CONTRIBUTORS LICENSE instance.go connectsk statkeeper tmpimg`您可以添加更多信息吗:文件的更多信息,您如何尝试“运行此go文件”具体来说,您尝试了哪些命令。此包在您的文件系统上的位置?我当前在/root/go/src/-------------------------------/-----------/instance目录中-当然可以编辑。其中还包含其余包的文件。我尝试使用/instance运行该文件,好像SH使用/instance一样,但这不起作用,因此我改为/instance.go。如何运行它?您应该有一个带有
package main
的文件,该文件有一个'func main(){…`这个函数应该是你程序的开始,这是你应该运行的文件。在这个文件中,你可以导入
dns.go
和你拥有的任何其他
.go
文件。请注意,
/
不是一个运行程序的语法,正如你的解释所暗示的那样-它只是一个路径前缀。任何可以n通过shell定位–
/path/to/program
,或者如果程序恰好位于
路径
上的目录中,则只需将其作为shell命令的第一个字即可运行。
/program
可以代替
程序
,因为除非您在如果shell知道查找它,则需要准确地告诉它在哪里。默认情况下,当前目录不是shell查找程序的地方。请注意,
/
不是运行程序的语法,正如您的解释所暗示的那样–它只是一个路径前缀。任何可以由shell定位的程序–
/path/如果程序恰好位于您的
路径
上的某个目录中,则只需将其作为shell命令的第一个字即可运行到/program
,或者只需
program
/program
可以代替
program
,因为除非您将程序安装在shell知道查找它的地方,否则shell我需要知道它的确切位置。默认情况下,当前目录不是shell查找程序的地方。