Go, with its focus on simplicity and modularity, offers a straightforward way to import and use packages. Importing local packages is a common practice, especially when structuring code into reusable modules or libraries within the same project. In this blog post, we’ll explore the step-by-step process of importing local packages in Go.

Creating a Local Package

Before importing a local package, let’s create a simple example of a local package within a Go project.

Step 1: Project Structure

Assume the following directory structure for your Go project:

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

Step 2: Creating the Package

Inside the mypackage directory, create a file named greetings.go. This file will contain the code for the package.


package mypackage

import "fmt"

func SayHello(name string) {
fmt.Println("Hello,", name)

The SayHello function in the mypackage package simply prints a greeting message to the console.

Importing the Local Package
Now that we have created our local package, let’s import and use it in the main.go file.

Step 3: Importing the Local Package


package main

import "./mypackage"

func main() {
    mypackage.SayHello("Go Programmer")

In the main.go file, we import the local package mypackage using a relative import path (“./mypackage”). Then, we call the SayHello function from the imported package within the main() function.

Using the Local Package

Step 4: Running the Code

To run the code, navigate to the my_project directory in your terminal and execute the following command:


go run main.go
This command executes the main.go file, importing and utilizing the mypackage local package to display the “Hello, Go Programmer” message.


Importing local packages in Go involves organizing your code into packages within the same project directory structure. By using relative import paths, you can import and utilize these local packages seamlessly in your Go programs. Leveraging local packages promotes code reusability, modularity, and maintainability, enabling you to efficiently structure your codebase into reusable modules for better development practices in Go projects.

Support On Demand!