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

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

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

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

Python 3.x

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

Q&A

解決済

1回答

3206閲覧

Pyinstaller(ver.3.6)でほぼ空のソースコードをexe化しようとすると、UnicodeDecodeErrorが発生する。(codecs.py)

H.K2

総合スコア88

PyInstaller

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

Python 3.x

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

1グッド

0クリップ

投稿2020/03/14 02:30

編集2020/03/14 03:26

前提・実現したいこと

xlwingsで、Mysqlのデータを取り込んでexcelに出力するプログラムを作ろうとしています。
下記のように試行錯誤しましたが、途中でタイトルのような問題が発生し、解決できませんでした。

・openpyxlでは、既存のexcelシートの一部だけを上書きすることができなかったので、
調べた結果、xlwingsでは実現できることが分かり、jupyterでサンプルコードを書いてみた
・jupyter上ではきちんと動いていたので、いざ配布用にxlwingsの0.16.5以降でサポートされている
RunFrozenPythonの機能を使うため、今まで使っていたxlwingsをuninstallしたうえで、0.18にアップデートした
・UnicodeDecodeErrorが出るようになった。
・ネットで調べたところ、ソースコードで文字コードの指定をしていると出ることがあるようなので、
いったん問題を切り分けるためにソースコードをすべて消し、後述する例のように、
単にメインでprintするだけのコードをexe化してみようとしましたが、問題が解決しません。
以前試していたver.0.15ではできていたので、バージョンの違いを公式で確認してみたのですが、
正直なぜexe化ができなくなるのかがわかりませんでした。

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

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte

なお、pyinstallerでexe化するときのログ全体は下記となります。
133 INFO: PyInstaller: 3.6
133 INFO: Python: 3.7.6 (conda)
136 INFO: Platform: Windows-10-10.0.18362-SP0
138 INFO: wrote C:\hiro_env\python_workspace\Pycharm_proj\test_sqlalchemy_excel\generate_queries_to_VBA.spec
143 INFO: UPX is not available.
147 INFO: Extending PYTHONPATH with paths
['C:\hiro_env\python_workspace\Pycharm_proj\test_sqlalchemy_excel',
'C:\hiro_env\python_workspace\Pycharm_proj\test_sqlalchemy_excel']
147 INFO: checking Analysis
150 INFO: Building Analysis because Analysis-00.toc is non existent
155 INFO: Initializing module dependency graph...
164 INFO: Caching module graph hooks...
176 INFO: Analyzing base_library.zip ...
4989 INFO: Caching module dependency graph...
5159 INFO: running Analysis Analysis-00.toc
5166 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
required by c:\users\agare.conda\envs\minimam\python.exe
5654 INFO: Analyzing C:\hiro_env\python_workspace\Pycharm_proj\test_sqlalchemy_excel\generate_queries_to_VBA.exe
Traceback (most recent call last):
File "c:\users\agare.conda\envs\minimam\lib\runpy.py", line 193, in run_module_as_main
"main", mod_spec)
File "c:\users\agare.conda\envs\minimam\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\agare.conda\envs\minimam\Scripts\pyinstaller.exe_main
.py", line 7, in <module>
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller_main
.py", line 114, in run
run_build(pyi_config, spec_file, **vars(args))
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller_main_.py", line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\building\build_main.py", line 734, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\building\build_main.py", line 681, in build
exec(code, spec_namespace)
File "C:\hiro_env\python_workspace\Pycharm_proj\test_sqlalchemy_excel\generate_queries_to_VBA.spec", line 17, in <module>
noarchive=False)
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\building\build_main.py", line 244, in init
self.postinit()
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\building\datastruct.py", line 160, in postinit
self.assemble()
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\building\build_main.py", line 416, in assemble
priority_scripts.append(self.graph.run_script(script))
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\depend\analysis.py", line 249, in run_script
self._top_script_node = super(PyiModuleGraph, self).run_script(pathname)
File "c:\users\agare.conda\envs\minimam\lib\site-packages\PyInstaller\lib\modulegraph\modulegraph.py", line 1395, in run_script
contents = fp.read() + '\n'
File "c:\users\agare.conda\envs\minimam\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte

ソースコード

python3

1def main(): 2 print("Hello") 3 4if __name__ == "__main__": 5 # 初期設定(パラメータ)→標準入力で受付 6 main() 7 8

試したこと

stackoverflowで類似の問題がないか確認
公式のxlwingsのページを調べて、類似の問題がないか確認

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

仮想環境のライブラリの状況は下記となります。
altgraph 0.17 pypi_0 pypi
ca-certificates 2019.11.27 0
certifi 2019.11.28 py37_0
comtypes 1.1.7 pypi_0 pypi
et-xmlfile 1.0.1 pypi_0 pypi
future 0.18.2 pypi_0 pypi
jdcal 1.4.1 pypi_0 pypi
numpy 1.18.1 pypi_0 pypi
openpyxl 3.0.3 pypi_0 pypi
openssl 1.1.1d he774522_3
pandas 0.25.3 pypi_0 pypi
pefile 2019.4.18 pypi_0 pypi
pip 19.3.1 py37_0
pyinstaller 3.6 pypi_0 pypi
python 3.7.6 h60c2a47_2
python-dateutil 2.8.1 pypi_0 pypi
pytz 2019.3 pypi_0 pypi
pywin32 227 pypi_0 pypi
pywin32-ctypes 0.2.0 pypi_0 pypi
setuptools 44.0.0 py37_0
six 1.14.0 pypi_0 pypi
sqlalchemy 1.3.15 pypi_0 pypi
sqlite 3.30.1 he774522_0
vc 14.1 h0510ff6_4
vs2015_runtime 14.16.27012 hf0eaf9b_1
wheel 0.33.6 py37_0
wincertstore 0.2 py37_0
xlwings 0.18.0 pypi_0 pypi

s.k👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

すみません。自己解決しました。
下記サイトを参考に、仮想環境を一から作り直すことで、少なくとも実行できるexeファイルは生成できました。ただ、xlwings側で別の問題が発生しています(RunFrozenPythonが動かない)ので、別途質問をさせていただきたいと思っています。

参考サイト:
https://lets-hack.tech/programming/languages/python/pyinstaller-issue/
https://qiita.com/kanedaq/items/e65507878c52ad67d002

投稿2020/03/14 07:54

H.K2

総合スコア88

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問