Golang错误:找不到包命令
运行.go文件时出现此错误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
./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查找程序的地方。