前提・実現したいこと
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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。