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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Q&A

解決済

1回答

4935閲覧

Google Colaboratoryでクライアント上もしくはクラウド上で動作するコードが知りたい

_toy

総合スコア28

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

0グッド

1クリップ

投稿2021/06/21 03:53

編集2021/06/21 09:45

現在、PCで強化学習を用いてボードゲームを作成しています。
PC内で環境を作り動かしているのですが、スペック上計算時間が長く、
一手選択させるのに時間がかかってしまいます。

そこでGoogle ColaboratoryのGPUを使用することで計算時間を短くしようとしたのですが
tkinterというGUIを表示させるコードでエラーが起きてしまいます。

TclError Traceback (most recent call last) <ipython-input-40-> in <module>() ----> 1 root = tkinter.Tk() 2 root.title("Window title") 3 root.geometry("400x300+1000+10") 4 root.mainloop() /usr/lib/python3.6/tkinter/init.py in init(self, screenName, baseName, className, useTk, sync, use) 2021 baseName = baseName + ext 2022 interactive = 0 -> 2023 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) 2024 if useTk: 2025 self._loadtk() TclError: no display name and no $DISPLAY environment variable

このエラーは調べた結果google colabratoryではtkinterのようなクライアント上で動かすGUIのコードは使えないことによるエラーらしいです。

ではgoogle colaboratoryで使用できるクライアント上で動かす、GUIを表示させるコードは存在しないのでしょうか?

また存在しない場合クラウド上(google colaboratory)で動作(オセロだと石を置きたいところにクリックすると石が置けるようになるなど入力ができる)するGUIコードはないのでしょうか?

よろしくお願いします。

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

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

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

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

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

meg_

2021/06/21 04:24

無料のサービスでGPUを利用したい、という意図でしょうか?
_toy

2021/06/21 05:18

はい、無料のサービスでGPUを使い、なおかつtkinterのようなGUIコードを使いたいです。
guest

回答1

0

ベストアンサー

このエラーは調べた結果google colabratoryではtkinterのようなクライアント上で動かすGUIのコードは使えないことによるエラーらしいです。

はい。その通りです。 手元のPCで動かしているときはそのPCに接続しているモニタに表示されますよね? google colabratoryで動かしたときにもそこにつながっているモニタに表示しようとするのですが、そこにモニタはつながっていないのでエラーになります。

ではgoogle colaboratoryで使用できるクライアント上で動かす、GUIを表示させるコードは存在しないのでしょうか?

基本的には存在しません。 出力結果としてのグラフなどは表示できますが、ボタンやリストボックスなどのインタラクティブなオブジェクトを使うことはできません。

また存在しない場合クラウド上(google colaboratory)で動作(オセロだと石を置きたいところにクリックすると石が置けるようになるなど入力ができる)するGUIコードはないのでしょうか?

オンラインでWebブラウザで動作するオセロなどのボードゲームのように、Webアプリケーションとして実現する方法はあります。
また、google colabratory側にAPIだけ作って、tkinterなどで作ったローカルのアプリと通信して動作することもできます。

投稿2021/06/21 11:20

TakaiY

総合スコア12657

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

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

_toy

2021/06/21 15:45

回答ありがとうございます。 調べてみると オセロなどを動かそうとする場合、APIをもってきてクライアント上で動かすのが無難な感じがしました。 もしgoogle colaboratoryのAPIを取得して動かす方法について参考になるページがあればご教授いただけるとありがたいです。 丁寧に教えていただきありがとうございました。
teamikl

2021/06/22 00:07

> ボタンやリストボックスなどのインタラクティブなオブジェクトを使うことはできません。 google colab 独自に提供される幾つかのフォーム部品と、 拡張機構としては ipywidgets をサポートしてるので、 Jupyter/IPython で使えるウィジェット類は使えますよ。 仮想フレームバッファを使い、colab 上で tkinter を動かしブラウザ内で操作する手段もあります。 こちらは、環境構築が大変なので、オススメできる選択肢では有りませんが。 > Webアプリケーションとして実現する方法 > APIをもってきてクライアント上で動かすのが無難 どちらの場合でも、ローカル環境から colab 内のサーバーに直接接続は出来ないので、 中継手段が必要です。「ngrok」を検索
TakaiY

2021/06/22 01:11

teamiklさん。 情報ありがとうございます。 勉強になります。
teamikl

2021/06/22 01:47

確か、途中のアップデートで対応されたと記憶してます。 サービス開始初期は制限があったりして無理でした。 ちなみに、結論としては私も下記の解決策に1票です。 > Webアプリケーションとして実現する方法 > APIをもってきてクライアント上で動かす
_toy

2021/06/22 08:45

teamiklさんありがとうございます。 すべて試してみてできそうなのを実装してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問