dtzd65908
2017-11-08 03:59 阅读 456
已采纳

Golang错误:找不到包命令

I'm getting this error when running a .go file.

./instance.go: line 1: package: command not found
./instance.go: line 3: syntax error near unexpected token `newline'
./instance.go: line 3: `import ('

So far I've seen that the error normally means that GOPATH is not set, however, echo "$GOPATH" outputs /root/go and my path is currently /bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bin:/root/go/bin:/bin:/root/go/bin .

Here's the first few lines of instance.go:

package webrun

import (
        "context"
        "crypto/hmac"
        "crypto/rand"
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    douqujin2767 douqujin2767 2017-11-08 04:29

    These are not Go errors.

    However, I was able to reproduce your errors by trying to execute a go source file:

    $ 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 ('
    

    You can't do this with Go, since it is not interpreted. You need to compile your code to an executable before you can run it.

    You can read the help for how to compile and run a go program here.

    In your case,

    go run instance.go
    

    will try to compile and run the source file you're executing, but as another commenter points out, code that is not in the main package is not designed to be executed directly.

    If this is your code, you need to write it inside package main, and if it is not, then you're probably trying to execute a library (which means it's not clear to me what you're trying to do).

    点赞 评论 复制链接分享
  • dongmei1911 dongmei1911 2017-11-08 04:57

    You can only ./ files which are runnable. Your go file is not runnable. You need to compile it to binary and do ./(dotslash) on it.

    点赞 评论 复制链接分享

相关推荐