how to import package from github - go

I'm trying to build a api using Go and I tried running a existing file from GitHub that I got from udemy course. I'm getting this kind of output:
C:\goworkspace\src\grpc-go-course-master\blog\blog_client>go run client.go
client.go:4:2: cannot find package "context" in any of:
C:\go\src\context (from $GOROOT)
C:\goworkspace\src\context (from $GOPATH)
..\..\..\golang.org\x\net\http2\not_go111.go:10:2: cannot find package "net/http/httptrace" in any of:
C:\go\src\net\http\httptrace (from $GOROOT)
C:\goworkspace\src\net\http\httptrace (from $GOPATH)
Could you suggest me what can cause this error?

In order to download the dependencies, you have to use the go get command:
go get -v -u github.com/alessiosavi/GoUtils
Change with the package that you need (in that repo you can find a bunch of 'utils' method).
If the project, instead, have the go.mod file, you have to type:
go clean
go build
By this way you are going to install the dependencies listed in the go.mod file.
For update the dependencies to the latest version:
go get -v -u all

go mod tidy
The above command looks for missing dependencies, adds them to go.mod, and installs them.

Related

Why do I keep getting this message when I try to download a go package?

C:\Users\Administrator\Documents\code\projects\weatherly>go get -u github.com/gofiber/fiber/v2
cannot find package "github.com/gofiber/fiber/v2" in any of:
c:\go\src\github.com\gofiber\fiber\v2 (from $GOROOT)
C:\Users\Administrator\go\src\github.com\gofiber\fiber\v2 (from $GOPATH)
How do I download the package? I believe that it is trying to check what is cached on my computer and I don't know how to download it first.
Its because you haven't initiated your module, you should use go mod init YourModuleName, then its pretty simple to do. also remove -f from go get command.

Error in compiling golang after migrating to centos

I was migrating my Golang programs from windows to Centos 7
It worked perfectly in Windows
but when I tried to compile on centos I get errors like
main.go:20:3: cannot find package "github.com/BurntSushi/toml" in any of:
/usr/local/go/src/github.com/BurntSushi/toml (from $GOROOT)
/root/work/src/github.com/BurntSushi/toml (from $GOPATH)
main.go:15:3: cannot find package "github.com/dgrijalva/jwt-go" in any of:
/usr/local/go/src/github.com/dgrijalva/jwt-go (from $GOROOT)
/root/work/src/github.com/dgrijalva/jwt-go (from $GOPATH)
main.go:16:3: cannot find package "github.com/gwlkm_service/config" in any of:
/usr/local/go/src/github.com/gwlkm_service/config (from $GOROOT)
/root/work/src/github.com/gwlkm_service/config (from $GOPATH)
kinda new to centos so idk what to do
looks like you have configured your GOPATH, without Go Module, you can use go get [package path] to download imported packages.
go get github.com/BurntSushi/toml
go get github.com/dgrijalva/jwt-go
go get github.com/gwlkm_service/config
Precisely
your go installation on server seems in /usr/local/go and
your project is in /root/work
so all your dependencies should be either in /root/work/src or /usr/local/go/src
now coming to action check your GOPATH with running echo $GOPATH
assuming it is automatically set to /usr/local/go/src
If not then follow - How do I SET the GOPATH environment variable on Ubuntu? What file must I edit?
If everything is ok then in your folder run go mod init
this will create mod file which will help you in further installations
look into - https://blog.golang.org/using-go-modules
then run go get commands as above #beiping96 said
go get github.com/BurntSushi/toml
go get github.com/dgrijalva/jwt-go
go get github.com/gwlkm_service/config
NOTE - after completing above process you will generate go modules file(same as package.json) and in future you won't need to care about dependencies

Unable to use Go get properly

I am a new user to go and I am trying this command.
go get github.com/tensorflow/tensorflow/tensorflow/contrib/go
And I am getting this error
package github.com/tensorflow/tensorflow/tensorflow/contrib/go
imports github.com/tensorflow/tensorflow/tensorflow/contrib/go
imports github.com/tensorflow/tensorflow/tensorflow/contrib/go: cannot find package "github.com/tensorflow/tensorflow/tensorflow/contrib/go" in any of:
/usr/lib/go/src/pkg/github.com/tensorflow/tensorflow/tensorflow/contrib/go (from $GOROOT)
/home/arafat/go/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (from $GOPATH)
I know this seems to be a trivial issue but I am stuck at it.
If the code to compile and install is not in the master branch (checked out by default by the go get), but only in the go branch of that repo, try and:
cd $GOPATH/github.com/tensorflow/tensorflow
git checkout go
Then try again the compilation.

Go get not fetching all dependencies

I am using go 1.5.1 on Windows 8.1 64-bit. I do not have GO15VENDOREXPERIMENT set in my environment. I have the latest version of git and bazaar installed.
I am trying to get the gomniauth package:
go get github.com/stretchr/gomniauth
Even though the process completes without any error, a lot of dependencies aren't pulled in.
For example, when compiling my app (which depends on gomniauth), I get these errors:
..\github.com\stretchr\codecs\xml\simple_xml_codec.go:5:2: cannot find package "github.com/clbanning/x2j" in any of:
C:\Go\src\github.com\clbanning\x2j (from $GOROOT)
C:\work\src\github.com\clbanning\x2j (from $GOPATH)
..\github.com\stretchr\codecs\msgpack\msgpack_codec.go:6:2: cannot find package "github.com/ugorji/go/codec" in any of:
C:\Go\src\github.com\ugorji\go\codec (from $GOROOT)
C:\work\src\github.com\ugorji\go\codec (from $GOPATH)
..\github.com\stretchr\codecs\bson\bson_codec.go:5:2: cannot find package "labix.org/v2/mgo/bson" in any of:
C:\Go\src\labix.org\v2\mgo\bson (from $GOROOT)
C:\work\src\labix.org\v2\mgo\bson (from $GOPATH)
It seems to pull in the direct dependencies for gomniauth, but doesn't pull in the dependencies of the dependencies. I have gone and deleted the stretchr folder from my GOPATH/src as well as GOPATH/pkg, but after running go get many times, it is still not pulling in the any dependencies beyond the second level.
I am 100% confident there are no network issues on my end. I can access those github repos using my browser or curl.
Change directory to your project and then try go get ./...
E.g.:
cd C:\work\src\github.com\stretchr\gomniauth
go get ./...
Or just go get github.com/stretchr/gomniauth/... as Amit Kumar Gupta suggested
In my case I was missing the bzr package.
After adding it using dnf install bzr and running #RoninDev suggestion it worked as expected:
cd $GOPATH/src/github.com/stretchr/gomniauth
go get ./...

Golang 1.5 vendors - Cannot find package

Trying to build my project in go lang using version 1.5 with GO15VENDOREXPERIMENT="1" turned on to ensure I look for the vendors locally.
My structure is:
apps_api
main.go
build.sh
src
controllers
models
views
vendor
github.com
golang.org
.....
build.sh contains
export GO15VENDOREXPERIMENT="1"
export GOPATH=`pwd`
go build .
controller file example
import (
"models"
"views"
"github.com/gin-gonic/gin"
)
But i get lots of errors saying package not found see below for exmaple
src/controllers/app-versions.go:10:2: cannot find package "github.com/asaskevich/govalidator" in any of:
/Users/ereeve/.gvm/gos/go1.5/src/github.com/asaskevich/govalidator (from $GOROOT)
/Users/ereeve/Documents/gocode/src/apps_api/src/github.com/asaskevich/govalidator (from $GOPATH)
src/controllers/index.go:4:2: cannot find package "github.com/chnlr/baseurl" in any of:
/Users/ereeve/.gvm/gos/go1.5/src/github.com/chnlr/baseurl (from $GOROOT)
/Users/ereeve/Documents/gocode/src/apps_api/src/github.com/chnlr/baseurl (from $GOPATH)
If i add these lines into my build.sh file it will build, but I don't want to use go get because I am using go 1.5 with the vendors locally inside my project to avoid dependancies.
# go get github.com/gin-gonic/gin
# go get github.com/go-sql-driver/mysql
# go get github.com/rif/cache2go
....
Any ideas what I am doing wrong?
IIRC, GO15VENDOREXPERIMENT will work only if the package you're building is inside $GOPATH/src, so setting
export GOPATH=`pwd`
in your build.sh makes it fail. If you put your apps_api inside say ~/fakegopath/src/ and run
env GOPATH="${HOME}/fakegopath/src/" GO15VENDOREXPERIMENT="1" go build .
it should work.

Resources