naruazcom230
@naruazcom230

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Goコマンドでエラー GOROOTが見つからない

○概要

goコマンド時にエラー発生
goをアンインストール、インストールし直しても改善せず

go version
go: cannot find GOROOT directory: C:\Users\myoujiNamae\go

現状ではアンインストールしても再起したコマンドプロンプト上で同じエラーが出る始末

go env -w GOROOT=...も当然使用できず、困ってしまった



プログラミング初学者です
エラー対応で試行錯誤しているうちに、自分が何をしてきたのかすら把握できなくなりました

もし分かる方、何かしらを思い付く方、力技でも何でも良いのでこういう時にやるべきことをアドバイスいただけますと幸いです

○現在の現象
コマンドプロンプトおよびVSCodeのターミナルでgoコマンドを使用すると
エラーが発生する

go version
go: cannot find GOROOT directory: C:\Users\myoujiNamae\go

※myoujiNamaeは実際には本名のローマ字

○未解決部分
Q1 cannot find GOROOTの事後対処方法(現状からの脱却)
Q2 GOPATHとGOROOTの指定場所両方に同じフォルダが作られた理由
  "go_web"なんて名前、手動で2回も作成したということ?
Q3 cannot find GOROOTを発生させないためにどうしたら良かったか

○経緯
 こちらの記事を参考にログイン機能とパスワードのハッシュ化機能をもつwebサイトを作成していた
(go_blogをgo_webとしたところ以外は写経)
https://zenn.dev/ajapa/articles/5b115f53e76f3a

コードを8割くらい書いたところで、エラーの1つに着手

could not import go_webmodel(cannt find package"go_w...
C:\Users\myouji Namae\src\go_web\model(from $GOPATH)
C:\Users\sobot\go\src\go_web\model(from $GOROOT)

原因分からず、"myouji namae"の空白を無くすためにターミナル上で

go env -w GOROOT=`\Users\myoujiNamae\src\go_web\model

もう順番も詳細もわかりませんが、他にも以下のようなことをgoコマンドを実行っせるとどうなるかとcould not import...のエラーが発生するかの確認とセットで1つづつ試しました。

  1. goをアンインストールした後、C:\Usersにスペースを含まない名前のフォルダを作成、そこにgoをインストール

  2. windowsシステム設定から環境変数設定をいじったり消したりした(GOROOTは最初から記載無く、いじっていない)

  3. 同じpcにwindowsの別アカウントを作成、VCode入れ、 goはアンインストール
    goコマンドは使えるようになったが、最初に困っていたエラーが発生
    go env -w GOROOT=~~でgopathと同じディレクトリに変更
    エラーが全て消えた
    go run main goで実行したところ、 エラー発生

package main is not in GOROOT (C:\Users\sobot\go\src\main)

○予想している解決方針
 1. goコマンドを使わずにgorootを変更
 2. gorootとgopathを正しいディレクトリに設定
   (本来は無難なところに勝手に設定される?)

go言語, golang, windows, VSCode

0

1Answer

自己解決しました
これでcannot import...も解決した

goコマンド以外のGOROOT変更コマンド
setx GOROOT "インストールディレクトリのパス"

0Like

Comments

  1. @naruazcom230

    Questioner

    再発?
    go env GOROOT
    C:\Program Files\Go
    の状態でgoplsをインストールしようとすると
    go: cannot find GOROOT directory: C:\Program Files\Go\src\go_web\controller

Your answer might help someone💌