前提・実現したいこと
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
これが初めてのプログラミング作業なので, 不届きな点はご容赦ください..