user2671513
user2671513

Reputation:

Go, Golang : external package import with GOROOT

Go, Golang : does not make sense that I have to have files before import

I am trying to go to next step but keep getting errors

  1. I have the package that I want to import ready.
  2. All I need to do is to import the external package from github and be able to use it on any code.

So this is what I did.

mkdir $HOME/go
export GOPATH=$HOME/go
go get github.com/user/project

This runs successfully. I downloaded it onto here with source code files from github

/Users/user/go/src/github.com/user/project/project.go

So to use this package that I just import I do

go run /Users/user/Desktop/code.go

But I am getting the following errors

 MacBook-Air:~ user$ go run /Users/user/Desktop/code.go 
 Desktop/code.go:32:8: cannot find package "project" in any of:
        /usr/local/go/src/pkg/project (from $GOROOT)
        /Users/user/go/src/project (from $GOPATH)

What should I do? AM I missing something? Thanks in advance and please help me. I wrote a lot of code but being very frustrated not being able to distribute it because of this.

Upvotes: 0

Views: 9412

Answers (2)

Logiraptor
Logiraptor

Reputation: 1518

It looks like you've got the external package in the same folder as your main package which uses it. In go, all packages must be in separate directories. It looks like the github project itself is actually doing that. If you separate the packages into different directories it should work properly.

Upvotes: 1

Nick Craig-Wood
Nick Craig-Wood

Reputation: 54089

The error message says at line 32 in your code.go it can't find package "goling".

Assuming that is a local package you want to use, you need to make sure it is in your GOPATH.

If you set GOPATH then you should develop your code within it, so moving the "goling" directory into /Users/user/go/src is the right thing to do.

Alternatively "goling" could be a typo, so check the imports in code.go. If you want to import an project from github the import should say

import "github.com/user/project"

And you then use the parts of project with a prefix of project.

If that doesn't help you get it working, then post the imports section of code.go.

Upvotes: 3

Related Questions