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

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

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

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

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

Q&A

1回答

1651閲覧

pythonファイルのpyinstallerによるexe化

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PyInstaller

PyInstallerは、Pythonのスクリプトを一括でWindowsなどで動く実行可能ファイルに変換できるツールです。このツールを用いることで自作のPythonプログラムを別で使用する場合でもPythonをインストールする必要がありません。

Python

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

0グッド

1クリップ

投稿2020/07/31 01:26

前提・実現したいこと

Pythonを用いて, テキストファイルを読み込んでワードクラウドを画像ファイルとして表示するプログラムを作っています.
Pythonファイルをコマンドプロンプトで実行すると正常に動作することは確認しました.
これを, Python環境を構築していないほかのパソコンでも実行したいと思い,
pyinstallerを用いて実行ファイル化しようと思い, exeファイルを作成したのですが, こちらをダブルクリックしても正常に動きません.
ただ, エラーが表示されているわけでもないのでどこで躓いているのかかわからないじょうたいです.

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

pyinstallerはsuccessfully completedします.
作成されたexeファイルをダブルクリックして実行しても
コマンドプロンプトの黒い画面が一瞬表示される or
され続ける or
extracting binariesで止まる

など試すことによっていろいろ結果が変わりますが, 動くことはありません.

該当のソースコード

python

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import MeCab
import re
import numpy as np
from PIL import Image
import csv
import os

def resource_path(relative_path):
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.dirname(file)
return os.path.join(base_path, relative_path)

text = open(resource_path("./resource/○○.txt"),mode="r").read()
parse = MeCab.Tagger().parse(text)
lines = parse.split("\n")
items = (re.split('[\t,]', line) for line in lines)
stop_words = []
with open(resource_path("./resource/stop_words.csv")) as f:
stop_words = f.read().splitlines()

words = []
i = 0
for item in items:
if item[0] == 'EOS' or item[0] == '':
pass
elif item[1] in ["名詞", "形容詞", "動詞", "副詞"]:
words.append(item[0])

words = ' '.join(words)

font_path = resource_path("./resource/POP.otf")

imgpath= resource_path("./resource/△△.png")

img_color = np.array(Image.open( imgpath ))
wc = WordCloud(stopwords= stop_words, collocations=False, background_color="white", mask=img_color, max_font_size=150, width=900, height=600, font_path=font_path, colormap="winter", max_words=300).generate(words)

image_colors = ImageColorGenerator(img_color)

plt.figure(figsize=(6,6), dpi=200)
plt.imshow(wc.recolor(color_func=image_colors),
interpolation="bilinear")
plt.axis("off")
plt.savefig("./□□.png")
plt.show()

試したこと

コードにあるように, 他環境でも同様に動作したいということで
コードを置いてある位置からの相対パスで, 同ディレクトリにあるresouceフォルダ内のテキストファイル, pngファイル, csvファイルを読み込むようになっています.
ここが悪いのかなと思い, webで検索をして相対パスの取り方?などをいろいろ変えましたがどれもうまくいきませんでした.

当たり前なのですが,
Hello World!をプリントするだけのpythonファイルは無事にexe化することができました.

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

python 3.7.6
windows10

これが初めてのプログラミング作業なので, 不届きな点はご容赦ください..

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

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

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

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

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

jeanbiego

2020/07/31 01:42

exeをダブルクリックではなく、コマンドプロンプト等から実行して下さい。そうすれば、エラーログがそのまま残りますので解決しやすいです。
退会済みユーザー

退会済みユーザー

2020/08/02 00:03

ありがとうございます.それは知りませんでした. コマンドプロンプトから実行してみたところ,ダブルクリック時と同じ挙動だったのですがエラーログってどこかべつの場所に残っているものなのでしょうか??
jeanbiego

2020/08/02 13:05

同じ挙動というのは、コマンドプロンプトが終了するということですか? もし何かしらログが出るのでしたら、それをそのまま質問欄に貼り付けてください。
退会済みユーザー

退会済みユーザー

2020/08/03 05:02

いえ,今の状態では コマンドプロントとは別に,コマンドプロンプトのような画面が立ち上がり,そこでカーソルが点滅したまま止まってしまいます.
guest

回答1

0

jeanbiegoさんが仰られるようにログ確認から進められそうであれば無視してください。

過去に私が参照させていただいたページは下記です。
pyinstallerの*.specファイル作成法。

(pyinstallerで処理した時に.pyファイルと同フォルダに.specファイルが作られると思います。それを編集して.pyの代わりに.specをpyinstallerで処理する方法です。)

投稿2020/07/31 05:33

mdj

総合スコア220

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

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

退会済みユーザー

退会済みユーザー

2020/08/03 05:02

遅くなり,申し訳ありません.今から試してみようと思います!
mdj

2020/08/05 00:07

何かあればコメントしてくださいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問