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

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

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

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Q&A

解決済

1回答

3529閲覧

Pythonで作った実行ファイルが開かない

Yhaya

総合スコア439

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

Python 3.x

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

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

1グッド

2クリップ

投稿2018/06/03 06:43

解決したい問題

Python3.6でpyqtを使ってmatplotlibのグラフを表示するGUIアプリケーションを作成し、それをcx_Freezeを使ってEXE化しました。しかしできた実行ファイルを実行しようとしても何も反応しません。
どうすればよいのでしょうか

.pyのファイルを実行すると、ちゃんとGUIが起動して期待している動作を果たすので、おそらくsetup.pyの問題だと思うのですが、、、

python

1import sys 2from cx_Freeze import setup, Executable 3import os 4os.environ['TCL_LIBRARY'] = "C:\Users\yudai\Anaconda3\Library\lib\tcl8.6" 5os.environ['TK_LIBRARY'] = "C:\Users\yudai\Anaconda3\Library\lib\tk8.6" 6 7# ------- 8# Setup 9# ------- 10packages = [] 11includes = ["PyQt5.QtWidgets", "PyQt5.QtCore", "os", "matplotlib.pyplot", 12 "bs4", "filemanage.py", "pyperclip", "matplotlib.backends.backend_qt5agg", 13 "queue", "idna.idnadata", "numpy.core._methods", "numpy.lib.format", "matplotlib.legend_handler"] 14excludes = [] 15base = None 16 17if sys.platform == 'win32' : base = 'Win32GUI' 18 19# exe にしたい python ファイルを指定 20exe = Executable(script = 'main.py', 21 base = base) 22 23# セットアップ 24setup(name = 'Analysis Program', 25 version = '0.0.1', 26 description = 'Help you analyze data', 27 options = {"build_exe": {"includes":includes, 28 "excludes":excludes, "packages":packages}}, 29 executables = [exe]) 30

ちなみに、プログラムの中心であるmain.pyではインポートは次のようになっています。

python

1from PyQt5.QtWidgets import (QApplication, QFileDialog, QGridLayout, QHBoxLayout, QMainWindow, 2 QMessageBox, QLabel, QLineEdit, QListWidget, QPushButton, 3 QVBoxLayout, QWidget, QComboBox, QSlider, QLCDNumber) 4from PyQt5.QtCore import Qt 5from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas 6import matplotlib.pyplot as plt 7import filemanage 8import os 9import pyperclip

ここでfilemanageというのは自分で作った.pyファイルで次のものをインポートしています。

python

1import numpy as np 2from scipy.fftpack import fft

よろしくお願いいたします。

kotai2001👍を押しています

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

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

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

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

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

hayataka2049

2018/06/03 11:15

コマンドプロンプトからexeを実行するとエラーが出てきたりしませんか?
Yhaya

2018/06/03 11:17

それもやってみたのですが、何も起こらず、入力待機状態に戻ります
guest

回答1

0

ベストアンサー

CX_FREEZEはsetup.pyの設定で簡単に動かなくなるので、特に理由が無ければpyinstallerのほうが楽でいいですよ。設定ファイルいらない上に、python3.6に対応しています。

pyinstaller Quick Guide

  1. コマンドラインからpip install pyinstallerでインストールして下さい。
  2. pyinstaller ファイル名 --onefileで、モジュールとか全部入りのexeファイル単体を吐き出してくれます

こんな感じでbuild.batみたいにして置いておくと楽ちんです

cmd

1pyinstaller working.py ^ 2 --log-level="ERROR" ^ # これが無いとエラーで埋め尽くされる 3 --onefile ^ # 単体exeとして出力 4 -n testbuild # ファイル名

投稿2018/06/03 11:38

kiwibird

総合スコア105

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

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

Yhaya

2018/06/03 12:01

回答ありがとうございます。試してみたのですが、 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 130: invalid start byte とエラーが出て実行できませんでした。「position 130」というのはソースコードの130行目ということでしょうか?ソースコードの130行目は空行で、スペースも1つもないのですが、、、
kiwibird

2018/06/03 12:19

あ~windows7だとそんな感じのエラーが出た記憶が... - OSは何を使っていますか? - それとソースファイルの文字コードはutf-8でしょうか?
Yhaya

2018/06/03 12:28

windows10で、ソースコードはutf-8になっています
Yhaya

2018/06/03 12:46

コマンドプロンプトがutf-8になっていなかったので直して再実行したらエラーが出ず、main.exeができましたが実行してもコマンドプロンプトのような画面が出るだけで何もできません。
kiwibird

2018/06/03 12:56

う~ん、何だろうか...元のファイルは実行出来ているようなので、やっぱりモジュールのインポートが出来てないのかな... お役に立てず申し訳ないです。 何というかバイナリ化はこういう理不尽なエラーが多いですよね...
Yhaya

2018/06/03 13:11

オプションで--pathsつけてPyQt5のパス明示したら出るようになりました。ありがとうございます。
kiwibird

2018/06/03 13:12

良かったです!お疲れ様でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問