Golang でのローカル パッケージのインポート方法
James Reed
Infrastructure Engineer · Leapcell

Key Takeaways
go mod init
を使用して Go モジュールを初期化し、ローカル パッケージを管理します。- モジュール パス (例:
myproject/mypackage
) を使用してローカル パッケージをインポートします。 - プロジェクトをルート ディレクトリから実行して、パッケージの解決が正しいことを確認します。
Golang を使用する場合、コードを複数のパッケージに構造化することは、モジュール性と再利用性を維持するための一般的な方法です。ただし、初心者はローカル パッケージの正しいインポートと使用に苦労することがよくあります。この記事では、Golang でローカル パッケージをインポートするプロセスについて説明します。
Go モジュールと GOPATH について
ローカル パッケージをインポートする前に、Go が依存関係をどのように管理するかを理解することが重要です。 Go はモジュール システム (go.mod
) を使用します。これは従来の GOPATH
メソッドに代わるものです。ローカル パッケージのインポート方法は、プロジェクトが GOPATH
内にあるか、モジュールが有効なワークスペース内にあるかによって異なります。
ローカル パッケージを使用した Golang プロジェクトのセットアップ
ローカル パッケージのインポートを示す簡単な Go プロジェクトを作成してみましょう。
1. プロジェクト ディレクトリを作成する
まず、プロジェクト用の新しいディレクトリを作成します。
mkdir myproject cd myproject
ディレクトリに Go モジュールを初期化します。
go mod init myproject
このコマンドは、myproject
をモジュール名として定義する go.mod
ファイルを作成します。
2. ローカル パッケージを作成する
プロジェクト ディレクトリ内で、ローカル パッケージを保持する mypackage
という名前のフォルダーを作成します。
mkdir mypackage
次に、mypackage
内に Go ファイルを作成します。
touch mypackage/mymodule.go
mypackage/mymodule.go
を編集して、単純な関数を定義します。
package mypackage import "fmt" func Hello() { fmt.Println("Hello from mypackage!") }
3. ローカル パッケージをインポートする
次に、プロジェクトのルート ディレクトリに main.go
ファイルを作成します。
touch main.go
main.go
を編集して、ローカル パッケージをインポートして使用します。
package main import ( "myproject/mypackage" ) func main() { mypackage.Hello() }
4. コードを実行する
次に、プログラムを実行します。
go run main.go
次の出力が表示されます。
Hello from mypackage!
一般的な問題のトラブルシューティング
1. cannot find module providing package
次のようなエラーが表示された場合:
cannot find module providing package myproject/mypackage
以下を確認してください:
- プロジェクトに、正しいモジュール パスを含む有効な
go.mod
ファイルがある。 - プロジェクトのルート ディレクトリから
go run main.go
を実行している。 - パッケージのフォルダーとファイル名がインポート パスと一致している。
2. go: cannot find main module
Go のバージョンが 1.17 以降の場合は、モジュール ワークスペース内にあることを確認してください。
go mod tidy
このコマンドは、依存関係の解決に役立ちます。
結論
Golang でのローカル パッケージのインポートは、モジュール システムを理解すると簡単になります。コードを個別のパッケージに構造化することで、再利用性と保守性を向上させることができます。モジュール パスが正しいこと、および Go プロジェクトが適切に初期化されていることを常に確認してください。
FAQs
go.mod
ファイルが正しく初期化され、インポート パスがモジュール構造と一致していることを確認してください。
Go モジュール (go.mod
) では、GOPATH
は不要になりました。
go mod tidy
を実行して、モジュールの依存関係をクリーンアップして解決します。
Leapcell は、Go プロジェクトをホストするための最適な選択肢です。
Leapcell は、Web ホスティング、非同期タスク、および Redis 用の次世代サーバーレス プラットフォームです。
多言語サポート
- Node.js、Python、Go、または Rust で開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い — リクエストも料金もありません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例: 25 ドルで平均応答時間 60 ミリ秒で 694 万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的な UI。
- 完全に自動化された CI/CD パイプラインと GitOps の統合。
- 実用的な洞察を得るためのリアルタイムのメトリクスとロギング。
簡単なスケーラビリティと高性能
- 高い同時実行性を処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ — 構築に集中するだけです。
詳細については、ドキュメントをご覧ください!
X でフォローしてください: @LeapcellHQ