🔰
Go言語初心者が,「disallowed import path」にハマった話.
状況
タイトルの通りです.
pythonのパッケージ管理との違いに翻弄されながらも,なんとかGoにおけるmoduleの理解が深まってきて,「よしHello Worldをやってみよう!」と思い立ったときに,このエラーにハマりました.
環境
バージョン:go1.24.6
OS:darwin/arm64 (macOS Sequoia 15.6.1)
※ go versionコマンドで確認可能
当時の理解
go mod init 〇〇コマンドを使えば,go.modというファイルが生成されるのか.
ふむふむ,〇〇のところは後から再利用したり,他人に共有したりするときのURLになるのか.
なるほど.
でも,まずは配布のことは考えなくていいから,適当にmod/sampleとかでいいかぁ.
他の人も,sampleAとか,sample/testとか適当な感じでモジュール名を決めてるみたいだし.
go mod init mod/sample
よしよし,main.goでHello Worldを出力するコードを書いてみたぞ...!
案外,簡単だったな.
よし,実行だ!
なになに,go run .やgo run main.goで実行するのか.
よし,go run .
...
package mod/sample: disallowed import path "mod/sample"
え,なんで?...
解決
ここのWebサイトによると,Goの標準パッケージはmodで始まるから,モジュール名をmod/で始めてはいけないらしいです.
試しに,mods/sampleやmodule/sampleにしてみた所,Hello Worldが表示されました.
Discussion