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

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

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

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

Q&A

解決済

1回答

4200閲覧

cx_freezeでexe化をしたい

ookura

総合スコア27

Python

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

0グッド

0クリップ

投稿2020/07/30 07:58

編集2020/08/01 04:51

cx_freezeでguiアプリをexe化したいのですが、エラーが発生してexeファイルが生成されません。
https://genchan.net/it/programming/python/10325/
を参考にさせていただいたのですが、下記エラーメッセージが出ます。
#下記エラー
UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.
"Distutils was imported before Setuptools. This usage is discouraged "
error: The baseline image directory does not exist. This is most likely because the test data is not installed. You may need to install matplotlib from source to get the test data.

matplotlibが関係しているのでしょうか。対処方がわからず右往左往しています。
不勉強で申し訳ありませんがどなたかご教示ください。
よろしくお願いします。

os:windows
pycharm使用
#追記
コードを全て記載したかったのですが文字数制限にひっかかってしまいました・・。
とりあえず中略で記載思します。

#ソースコード

# -*- coding: utf-8 -*- import pyocr.builders import os import pyocr import pyocr.builders import cv2 import sys import img2pdf import subprocess from tkinter import filedialog import tkinter import numpy as np import matplotlib.pyplot as plt import time from PyQt5 import QtWidgets,QtCore from PyQt5.QtWidgets import QInputDialog,QProgressBar, QPushButton, QRadioButton,QMessageBox,QLineEdit,QVBoxLayout,QTextEdit,QLabel from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas import glob from PIL import Image import configparser config =configparser.RawConfigParser() ocr_f = True class Application(QtWidgets.QWidget): def __init__(self): (文字数制限に引っかかって島しまい中略)

#setup.py

import sys from cx_Freeze import setup, Executable base = None if sys.platform == "win32" : base = "Win32GUI" # CUIの場合はこのif文をコメントアウトしてください。 exe = Executable(script = "OCR.py", base= base) # "main.py"にはpygameを用いて作成したファイルの名前を入れてください。 setup( name = 'your_filename', version = '0.1', description = 'converter', executables = [exe] ) # 'your_filename'は好みの名前でどうぞ。

#再追記
numpyとpillowのバージョンを落とすことでexe化ができました!
しかし、起動後に画像のエラーが発生して起動しませんでした・・・。
もし可能であれば下記対処法もご教示いただけますと幸いです。
度々甘えてしまい申し訳ありません
イメージ説明

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

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

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

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

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

Penpen7

2020/07/30 21:39 編集

情報が足りないため、ソースコードを載せ、どのような手順でexe化したか教えてください。
guest

回答1

0

ベストアンサー

こちらのgithubのissueを参考にしてください。
cx_Freeze 6.2 breaks matplotlib projects

I have already identified the source of this problem, it is the patch 7ec3eaa

Using the matplot sample, I see an issue with numpy 1.18.3 to 1.19 and pillow 7.x, and I'm investigating.
For now, it has a workaround.
pip install "numpy<1.18.3" "pillow<7"
To build add ["matplotlib.tests", "numpy.random._examples"] to excludes or build with:
python setup.py build_exe --excludes=matplotlib.tests,numpy.random._examples
If you have a "excludes" in your setup.py, add the two excluded modules int it, options in setup is exclusive.

すなわち, numpyを1.18.3より古いバージョン、pillowを7より古いバージョンのものをインストールし、
python setup.py build_exe --excludes=matplotlib.tests,numpy.random._examples
のように--excludesを指定するというのが現状の解決策のようです。

投稿2020/07/31 20:43

Penpen7

総合スコア698

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

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

ookura

2020/08/01 02:44

exe化ができました!ありがとうございます。 しかし追記の通りですが別のエラーが発生してしまいました・・・。 もし可能であればこちらもご教示いただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問