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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

6126閲覧

TkinterでGUIを作っているが、画面が表示されない。Import に原因がある気が...

KsTmhr

総合スコア5

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/02/20 09:17

前提・実現したいこと

PythonとTkinter,Pillowなどを使ってGUIを作成しようとしています。
コマンドプロンプトから実行する分にはちゃんと画面が表示されるのですが、
ファイルのアイコンをダブルクリックすると画面が開きません。
他のTkinterを利用したプログラムはそれで動作できていました。
試しに最初のimportを(Pillow、自作モジュールなど)数行コメントアウトすると(下のプログラムも全部コメントアウトしました)
画面が開きました。
なぜでしょうか? よろしくお願いします。

発生している問題・エラーメッセージ

PYファイルをダブルクリックすると、一瞬開いてすぐ閉じてしまう

エラーは出ていません

python

1from PIL import Image,ImageTk,ImageOps 2import tkinter as tk 3import tkinter.filedialog as fd 4import prediction as pre #自作モジュール 5import dictionary #自作モジュール 6 7これを 8 9#from PIL import Image,ImageTk,ImageOps 10import tkinter as tk 11import tkinter.filedialog as fd 12#import prediction as pre 13#import dictionary 14 15こうすると画面が開く

試したこと

プログラムの原因を特定するために少しずつコメントアウトした
(root=tk.TK(),root.title(),root.geometry(),root.tk.mainloop()以外)
Tkinter以外のimportをコメントアウトすると、開いた。

補足情報(FW/ツールのバージョンなど)

Anaconda3,Python3.7,windows 10 home

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

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

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

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

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

mistn

2020/02/20 15:43

自作モジュールの中でPILを使ってたりしますか?
KsTmhr

2020/02/22 03:49

使用しています Tensorflow2.1.0 pillow7.0.0 numpy1.18.1 を使っています
mistn

2020/02/22 05:35 編集

すでにhayataka2049さんが回答していますがそういうことだと思いますよ。 原因は実行している環境でPillowが入っていないことでしょう。
guest

回答1

0

ベストアンサー

  • 仮設:

複数のpython環境があって、コマンドプロンプトで実行したときとダブルクリックのときで違うものが走っていて、インストールされているライブラリが違うのでimportのときにエラーになる。

anacondaで環境を作るような人だと起こり得るかもしれません。対処は、

  • 拡張子の関連付けとかで頑張る

【ノンプログラマー向けPython】Anacondaでpyファイルをダブルクリックで実行できるように設定する

  • バッチファイル経由で立ち上げることにする

ダブルクリックやドラッグ&ドロップでpythonを実行する (Windows) - Qiita

のどちらかが良いでしょう。


確認用のコードを置いておきます。二つの実行方法でそれぞれ動かしてみて、違う結果になったらそういうことです。

python

1import sys 2import tkinter as tk 3 4root = tk.Tk() 5label = tk.Label(root, text=sys.prefix) 6label.pack() 7root.mainloop() 8

投稿2020/02/21 21:15

hayataka2049

総合スコア30933

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

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

KsTmhr

2020/02/22 09:50

ご回答ありがとうございます! 確認用のコードを実行してみましたが、違いは見られませんでした。 また、使用するライブラリをpip で再インストールしたところ、 以下のようなエラーが出るようになってしまいました。 Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 58, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 28, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) File "C:\ProgramData\Anaconda3\lib\imp.py", line 242, in load_module return load_dynamic(name, filename, file) File "C:\ProgramData\Anaconda3\lib\imp.py", line 342, in load_dynamic return _load(spec) ImportError: DLL load failed: 指定されたモジュールが見つかりません。 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "fish_dic.py", line 4, in <module> import prediction as pre File "C:\Users\KISHI\Tomo2\fish_dictionary\prediction.py", line 1, in <module> import tensorflow.keras File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 101, in <module> from tensorflow_core import * File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module> from tensorflow.python.tools import module_util as _module_util File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__ module = self._load() File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 44, in _load module = _importlib.import_module(self.__name__) File "C:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\__init__.py", line 49, in <module> from tensorflow.python import pywrap_tensorflow File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 74, in <module> raise ImportError(msg) ImportError: Traceback (most recent call last): File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow.py", line 58, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 28, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) File "C:\ProgramData\Anaconda3\lib\imp.py", line 242, in load_module return load_dynamic(name, filename, file) File "C:\ProgramData\Anaconda3\lib\imp.py", line 342, in load_dynamic return _load(spec) ImportError: DLL load failed: 指定されたモジュールが見つかりません。 Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common reasons and solutions. Include the entire stack trace above this error message when asking for help. 使用するライブラリ以外を入れていないきれいな環境では 実行できました。
hayataka2049

2020/02/22 15:33

anaconda環境でpipを併用して壊れるのはよくあることです。調べると色々出てきますが、anacondaを使わないほうが楽かもしれません。
KsTmhr

2020/02/23 04:37

一度Anakondaをアンインストールしてみます。 色々ありがとうございました。
KsTmhr

2020/02/23 12:01

何度もすみません。やはりTensorflowはAnacondaがないと入れるのが 難しそうだったので、Anaconda再インストール&conda installのみの使用で 慎重にやってみたところ、上記のエラーは消えました。 バッチファイルからの起動を試してみたところ、以下のようなエラーが 出ました。 'python' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 python.exeのPathは通しました。 また、やはりコマンドプロンプトからはpythonは使えます。 バッチファイルから呼ばれるコマンドプロンプトではpythonが使えないようです。 拡張子の関連付けも試してみましたが、変化が見られませんでした。 何か方法はあるでしょうか?それとも、ダブルクリックはあきらめるべきでしょうか? 何度もすみません。よろしくお願いします。
hayataka2049

2020/02/24 02:02

2つ目のリンクのフルパスで指定する方法を試してみてください。それでも駄目なら諦めですね。
KsTmhr

2020/02/25 09:57

PCを再起動したら、できるようになりました!! 恐らく、再起動したことで、一つ目の方法の関連付けが 適用されたのかな... 何度もありがとうございました。 バッチファイルという新しい技術にも触れることができました。ありがとうございました‼
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問