こんにちは、洸です!
基本的に、以下のようなディレクトリ構成でgo.modを配置していましたが、構成を変更することに。
1 2 3 4 5 6 7 8 9 10 11 12 |
$GOPATH$ |----bin |----pkg |----src | |----github.com | | |----githubユーザ名 | | | |---- プロジェクト名 | | | | |----main.go | | | | |----go.mod | | | | |----go.sum | | | | |----パッケージ名 | | | | | |----パッケージ.go |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$GOPATH$ |----bin |----pkg |----src | |----github.com | | |----githubユーザ名 | | | |---- docker-compose.yml | | | |---- DockerFile | | | |---- app | | | | |---- プロジェクト名 | | | | | |----main.go | | | | | |----go.mod | | | | | |----go.sum | | | | | |----パッケージ名 | | | | | | |----パッケージ.go | | | |---- mysql |
Dockerで環境構築するために、appディレクトリを挟んだのです。
すると案の定エラーが発生。パッケージがimportできないとのことです。
1 2 3 |
could not import gopkg.in/ini.v1 (cannot find package "gopkg.in/ini.v1" in any of /usr/lib/golang/src/gopkg.in/ini.v1 (from $GOROOT) |
go.modをapp下で再作成するも、エラーは解決できず。
調べた結果、どうやら拡張機能のgoplsが悪さをしているようです。
goplsを削除し、VSCodeを再起動すると無事治りました。
ただし、goplsを削除してしまうと、importの自動追加などの機能が動作しなくなります。
そこで、goimportsをインストールしました。
どうやら、goimportsを使う方がデフォルトだそうです。
参考:Go+VSCodeでサブディレクトリにgo.modを置くとcould not importになる
-
-
参考【Go言語入門】外部パッケージを使って設定ファイルを読み込む【第1回】
こんにちは、洸です!この度、1回15分でGo言語を学習できるチュートリアルを用意しました。第1回目はパッケージ管理ツールを導入して、外部パッケージを使って設定ファイルの読み込み行いたいと思います。Go言語では機能やオブジェクト毎にパッケージ化を行い、そのパッケージをインポートしてプログラムを記述します。
続きを見る