How to Import Local Package in Golang?

In Go, you can import local packages by specifying the relative path to the package directory from the current Go module. Here’s how you can import a local package:

Project Structure:

Suppose you have the following project structure:

├── main.go
└── mypackage/
└── mypackage.go

1. Create a Go Module (Optional):

If you haven’t initialized your project as a Go module yet, you can do so by running the following command in the project root:

go mod init myproject

2. Write Your Package:

In the `mypackage/mypackage.go` file, define your package:

package mypackage

import "fmt"

func Hello() {
fmt.Println("Hello from mypackage!")

3. Import Your Package in `main.go`:

In your `main.go` file or any other Go file within your project, import your local package using its relative path:

package main
import (

func main() {

4. Run Your Program:

Run your Go program as usual:

go run main.go


1. Go packages are organized using directories, and their names are based on the last segment of the import path.
2. If your project is not a Go module, make sure your `GOPATH` environment variable is correctly set. In a non-module project, packages should be placed under the `src` directory within the `GOPATH`.
3. If your package is part of a Go module, the import path should be relative to the module root.
4. The `go mod init` command is only necessary if you’re working with Go modules. If you’re not using modules, make sure your project is structured within your `GOPATH`.
5. You can also import local packages using their full path from your `GOPATH`, but this is not recommended unless your project is not using Go modules.