質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

1回答

3807閲覧

GO言語のGUIライブラリ「Fyne」が動作しない

Suumon

総合スコア211

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

1グッド

0クリップ

投稿2021/05/23 08:40

編集2021/05/24 16:03

環境

  • Windows10
  • GO 1.16.4

質問内容

任意の箇所に下記ファイル(main.go)を作成し、go run main.go を実行。

Go

1package main 2 3import ( 4 "fyne.io/fyne/v2/app" 5 "fyne.io/fyne/v2/container" 6 "fyne.io/fyne/v2/widget" 7) 8 9func main() { 10 a := app.New() 11 w := a.NewWindow("Hello") 12 13 hello := widget.NewLabel("Hello Fyne!") 14 w.SetContent(container.NewVBox( 15 hello, 16 widget.NewButton("Hi!", func() { 17 hello.SetText("Welcome :)") 18 }), 19 )) 20 21 w.ShowAndRun() 22}

その際、下記のエラーが発生

error

1main.go:4:2: no required module provides package fyne.io/fyne/v2/app: go.mod file not found in current directory or any parent directory; see 'go help modules' 2main.go:5:2: no required module provides package fyne.io/fyne/v2/container: go.mod file not found in current directory or any parent directory; see 'go help modules' 3main.go:6:2: no required module provides package fyne.io/fyne/v2/widget: go.mod file not found in current directory or any parent directory; see 'go help modules'

補足

fyneは下記でインストール

cmd

1go get fyne.io/fyne/v2

「main.go」と同階層には、何のファイルもおいておりません。

以上です。
どなたかご存じの方がいらっしゃいましたら、ご教示いただけると幸いです。
よろしくお願いいたします。


(2021/05/23 19:50 時点)
以下を実行し、main.goと同階層にgo.modファイルを作成

code

1go mod init fyne.io/fyne/v2

mod

1module fyne.io/fyne/v2 2 3go 1.12

この状態で、go run を実行

code

1main.go:4:2: no required module provides package fyne.io/fyne/v2/app; to add it: 2 go get fyne.io/fyne/v2/app 3main.go:5:2: no required module provides package fyne.io/fyne/v2/container; to add it: 4 go get fyne.io/fyne/v2/container 5main.go:6:2: no required module provides package fyne.io/fyne/v2/widget; to add it: 6 go get fyne.io/fyne/v2/widget

パッケージがないといわれているので加えればいいのかと思い、試しに以下を実行

code

1go get fyne.io/fyne/v2/app

error

1go get: module fyne.io/fyne@upgrade found (v1.4.3), but does not contain package fyne.io/fyne/v2/app

パッケージが含まれていない? go.modに何かを記載するのか…上記コマンドを実行する階層が違うのか…
ここで現在困っております。
もしないかご存じであればご教示いただけると幸いです。

解決

  1. 一度、main.goと同階層に作ってしまったgo.modを削除
  2. 「go mod init sample-app」を実行し、go.modを作り直す
  3. 「go get fyne.io/fyne/v2/...」を実行
  4. 「go run main.go」を実行

起動しました!
イメージ説明

nobonobo👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージが示す通り、アプリケーションを作るときにはGoモジュールとしての宣言処理をしてgo.modファイルを作る必要があります。

go.modファイルを生成するには「go mod init モジュール名」と言うコマンドを実行します。

注意:この時のモジュール名にはあなたのアプリケーションとして命名したものを指定してください。

追記

その後以下の様に依存をgo-getしましょう。

shell

1% go get fyne.io/fyne/v2/... 2# 現バージョンの出力例 3go: finding fyne.io/fyne v1.4.3 4go: downloading fyne.io/fyne v1.4.3 5go: finding fyne.io/fyne/v2 v2.0.3 6go: downloading fyne.io/fyne/v2 v2.0.3 7go: extracting fyne.io/fyne v1.4.3 8go: extracting fyne.io/fyne/v2 v2.0.3 9go: downloading github.com/stretchr/testify v1.5.1 10go: downloading github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff 11go: downloading github.com/fyne-io/mobile v0.1.3-0.20210412090810-650a3139866a 12go: downloading golang.org/x/image v0.0.0-20200430140353-33d19683fad8 13go: downloading golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03 14go: downloading github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 15go: downloading github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 16go: extracting github.com/stretchr/testify v1.5.1 17go: downloading golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 18go: extracting github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 19go: downloading github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 20go: extracting github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff 21go: extracting github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 22go: extracting github.com/fyne-io/mobile v0.1.3-0.20210412090810-650a3139866a 23go: downloading github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 24go: downloading github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a 25go: downloading gopkg.in/yaml.v2 v2.2.8 26go: extracting golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 27go: extracting github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a 28go: extracting golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03 29go: downloading github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb 30go: extracting github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 31go: downloading github.com/pmezard/go-difflib v1.0.0 32go: extracting gopkg.in/yaml.v2 v2.2.8 33go: downloading github.com/godbus/dbus/v5 v5.0.4 34go: extracting golang.org/x/image v0.0.0-20200430140353-33d19683fad8 35go: downloading github.com/fsnotify/fsnotify v1.4.9 36go: downloading golang.org/x/mod v0.2.0 37go: downloading golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e 38go: downloading github.com/pkg/errors v0.9.1 39go: downloading github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9 40go: extracting github.com/pmezard/go-difflib v1.0.0 41go: extracting github.com/godbus/dbus/v5 v5.0.4 42go: extracting github.com/fsnotify/fsnotify v1.4.9 43go: downloading github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca 44go: extracting github.com/pkg/errors v0.9.1 45go: downloading github.com/davecgh/go-spew v1.1.1 46go: extracting github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9 47go: downloading github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526 48go: extracting github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb 49go: extracting golang.org/x/mod v0.2.0 50go: downloading golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 51go: extracting github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526 52go: extracting golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 53go: extracting github.com/davecgh/go-spew v1.1.1 54go: downloading github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 55go: extracting github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca 56go: extracting github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 57go: downloading github.com/akavel/rsrc v0.8.0 58go: extracting github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 59go: extracting github.com/akavel/rsrc v0.8.0 60go: extracting golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e 61go: downloading golang.org/x/text v0.3.2 62go: extracting golang.org/x/text v0.3.2 63go: finding github.com/lucor/goinfo v0.0.0-20200401173949-526b5363a13a 64go: finding github.com/fsnotify/fsnotify v1.4.9 65go: finding github.com/godbus/dbus/v5 v5.0.4 66go: finding github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 67go: finding github.com/Kodeworks/golang-image-ico v0.0.0-20141118225523-73f0f4cfade9 68go: finding github.com/jackmordaunt/icns v0.0.0-20181231085925-4f16af745526 69go: finding golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 70go: finding github.com/josephspurrier/goversioninfo v0.0.0-20200309025242-14b0ab84c6ca 71go: finding github.com/pkg/errors v0.9.1 72go: finding golang.org/x/mod v0.2.0 73go: finding github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 74go: finding github.com/akavel/rsrc v0.8.0 75go: finding golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 76go: finding golang.org/x/tools v0.0.0-20200328031815-3db5fc6bac03 77go: finding github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff 78go: finding github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210410170116-ea3d685f79fb 79go: finding github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 80go: finding github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 81go: finding github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 82go: finding golang.org/x/image v0.0.0-20200430140353-33d19683fad8 83go: finding golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e 84go: finding github.com/stretchr/testify v1.5.1 85go: finding golang.org/x/text v0.3.2 86go: finding github.com/davecgh/go-spew v1.1.1 87go: finding github.com/pmezard/go-difflib v1.0.0 88go: finding gopkg.in/yaml.v2 v2.2.8 89go: finding github.com/fyne-io/mobile v0.1.3-0.20210412090810-650a3139866a

投稿2021/05/23 09:59

編集2021/05/24 02:25
nobonobo

総合スコア3367

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Suumon

2021/05/23 11:02

ご回答いただき、ありがとうございます。 JSでいうところのpackage.json(パッケージ管理ツール)が必要ということでしたか… ご教示いただいた通りに実行したところ、メッセージの内容が変わりました。 これで先に進めると思ったのですが、その先でまた詰まってしまいました… 上記に追記しておりますので、もし何かご存じであればアドバイスいただけると幸いです。 お手数をおかけいたしますが、何卒よろしくお願いいたします。
nobonobo

2021/05/23 23:16

追記のエラー「go get: module fyne.io/fyne@upgrade found (v1.4.3), but does not ...」はv1を認識してしまっているので、go.mod,go.sumを削除してやり直すと良いかもしれません。
nobonobo

2021/05/24 02:20

つぎエラーで進まない場合は環境依存の問題であることが多いので、環境に関する情報を開示してください。
nobonobo

2021/05/24 02:26

ひとつ誤解している点に気づきました。「go mod init モジュール名」のモジュール名はあなたが作成しようとするアプリケーションに付与するモジュール名を書いてください。(一般的にはリポジトリURLですが、公開するつもりがなければsample-appなどでも構いません)
Suumon

2021/05/24 15:59

アドバイスの通りに進めたら、想定していたものを表示させることができました。 ここまで丁寧に解説いただき、ありがとうございます。 これでようやく先に進めそうです。 もしよろしければ、もう一つお伺いしたいのですが、 % go get fyne.io/fyne/v2/... の「/...」は何を示しているのでしょうか? fyneのGitHubを見ると「/...」は付けずにgo getを実行していますし、一見不要にも見えます。 おそらく、プログラミング以前の基本なのだろうとは思っているのですが、 いまだによく分かっていないという状況ですので、ご教示いただけると幸いです。 https://github.com/fyne-io/fyne
nobonobo

2021/05/25 02:31

もしかすると、go.modの作り直しだけで「go get fyne.io/fyne/v2」だけでも治せたのかもしれません。 「...」はサブパッケージを再帰的にコマンドの対象に含める記述です。 「go build pkg/...」ならpkgのサブパッケージをすべてビルドしようとします。
Suumon

2021/05/25 03:57

ご回答いただきありがとうございます。 >「...」はサブパッケージを再帰的にコマンドの対象に含める記述です。 なるほど…非常に勉強になりました。 ここまでご教示いただいたことをもとに、Goの理解を深めていこうと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問