前提・実現したいこと
pyinstallerを用いて、pythonプログラムをexe化しようとしています。
しかし、以下に示すエラーが発生します。
発生している問題・エラーメッセージ
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x83 in position 128: invalid start byte
該当のソースコード
wave.py
python
1from scipy.optimize import curve_fit 2import seaborn as sns 3 4import sys 5import pandas as pd 6import numpy as np 7import matplotlib.pyplot as plt 8 9sys.setrecursionlimit(100000) 10filepath = input('please input file path.') 11filename = pd.read_csv(filepath, encoding="SHIFT-JIS") 12listT = [] 13listV = [] 14listT = filename['time'] 15listV = filename['value'] 16 17type = input('please input type.\n1:curve\r2:average') 18if type == '1': 19 res = np.polyfit(listT,listV,10) 20 y2 = np.poly1d(res)(listT) 21 plt.figure(figsize=(20,10)) 22 plt.plot(listT,listV,label='ori') 23 plt.plot(listT,y2,label='curve_fit') 24else: 25 num = 10000 26 b = np.ones(num)/num 27 y2 = np.convolve(listV, b, mode='same') 28 plt.figure(figsize=(20,10)) 29 plt.plot(listT,listV, label='ori') 30 plt.plot(listT,y2, label='ave') 31 32plt.legend() 33plt.show() 34 35input()
wave.spec
python
1# -*- mode: python -*- 2import sys 3sys.setrecursionlimit(100000) 4 5block_cipher = None 6 7 8a = Analysis(['wave.py'], 9 pathex=['C:\Users\user\Downloads\NewFolder'], 10 binaries=[], 11 datas=[], 12 hiddenimports=[], 13 hookspath=[], 14 runtime_hooks=[], 15 excludes=[], 16 win_no_prefer_redirects=False, 17 win_private_assemblies=False, 18 cipher=block_cipher, 19 noarchive=False) 20pyz = PYZ(a.pure, a.zipped_data, 21 cipher=block_cipher) 22exe = EXE(pyz, 23 a.scripts, 24 [], 25 exclude_binaries=True, 26 name='wave', 27 debug=False, 28 bootloader_ignore_signals=False, 29 strip=False, 30 upx=True, 31 console=True ) 32coll = COLLECT(exe, 33 a.binaries, 34 a.zipfiles, 35 a.datas, 36 strip=False, 37 upx=True, 38 name='wave') 39
試したこと
wave.pyとwave.specをサクラエディタで開き、
文字コードセットの指定でUTF-8を選択し、上書き保存しました。
その後また、pyinstallerを試しました。
結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
以下はconda listで確認したものです。
anaconda 5.2.0
python 3.6.5
Takey様のご提示いただいたコードで実行した結果
Anaconda Promptのバッファサイズで途切れてしまったので、後半部分のみ。
実行結果
回答1件
あなたの回答
tips
プレビュー